diff --git a/.aditoprj/blueprints/CreateExportAction.xml b/.aditoprj/blueprints/CreateExportAction.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c6df83894e53e19d6001d4d84337e48b622108aa
--- /dev/null
+++ b/.aditoprj/blueprints/CreateExportAction.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<blueprint name="Create Export Action">
+    <type>entityActionField</type>
+    <parameters>
+    </parameters>
+    <data>
+        <document name="context"><![CDATA[
+            <entity VERSION="1.3.17">
+             <entityFields>
+               <entityActionField>
+          <name>export</name>
+          <title>Export</title>
+          <onActionProcess>import("ExportTemplate_lib");
+import("system.vars");
+
+var selection = vars.get("$sys.selection");
+
+if(selection.length == 0)     //no selection -> use Filtercondition;
+{
+    selection = vars.get("$sys.filter");
+}
+
+ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname"));</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <iconId>NEON:EXPORT</iconId>
+          <stateProcess>import("system.result");
+import("FilterViewAction_lib");
+import("system.vars");
+
+var contactCount = vars.get("$sys.datarowcount");
+
+result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount));</stateProcess>
+          <tooltip>Export fields of this table</tooltip>
+          <tooltipProcess>import("system.translate");
+import("system.result");
+
+result.string(translate.text("Export columns using a exporttemplate"));</tooltipProcess>
+        </entityActionField>
+             </entityFields>
+        </entity>
+    ]]></document>
+    </data>
+</blueprint>
diff --git a/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplateFields_Dependency_ID.xml b/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplateFields_Dependency_ID.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f32a31b9b21c986a24ed06c0aa65f37bf83dfe11
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplateFields_Dependency_ID.xml
@@ -0,0 +1,19 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="s.pongratz" id="bcf10957-f79e-48b7-8a7b-013cfebe23bc">
+        <addColumn tableName="EXPORTTEMPLATEFIELD">
+            <column name="EXPORTTEMPLATEPLACEOFUSE_ID" type="CHAR(36)" />
+            
+            <column name="USER_NEW" type="NVARCHAR(50)" />
+            <column name="DATE_NEW" type="DATETIME" />
+            <column name="USER_EDIT" type="NVARCHAR(50)" />
+            <column name="DATE_EDIT" type="DATETIME" />
+        </addColumn>
+    </changeSet>
+    
+    <changeSet author="s.pongratz" id="a573c6b0-41ba-4bf1-99f5-b9c2c184dcc2">
+        <createIndex indexName="IDX_EXPORTTEMPLATEPOU_ID" tableName="EXPORTTEMPLATEFIELD">
+            <column name="EXPORTTEMPLATEPLACEOFUSE_ID"/>
+        </createIndex>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplatePlaceOfUse.xml b/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplatePlaceOfUse.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e5d45f305e725e82ede22b39669c89b331f3f1e0
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplatePlaceOfUse.xml
@@ -0,0 +1,23 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="s.pongratz" id="8cd938e0-bffc-46ab-8009-b2e2c099c4e3">
+        <addColumn tableName="EXPORTTEMPLATEPLACEOFUSE">
+            <column name="TITLE" type="NVARCHAR(150)"/>
+            <column name="EXPORTTEMPLATEPLACEOFUSE_ID" type="CHAR(36)" />
+            
+            <column name="OBJECT_FILTER" type="NCLOB" />
+            
+            <column name="USER_NEW" type="NVARCHAR(50)" />
+            <column name="DATE_NEW" type="DATETIME" />
+            <column name="USER_EDIT" type="NVARCHAR(50)" />
+            <column name="DATE_EDIT" type="DATETIME" />
+        </addColumn>
+    </changeSet>
+    <changeSet author="s.pongratz" id="b8121ece-f3ee-4899-a7d9-c61762cdf1a1">
+        <createIndex indexName="IDX_ETPOU_ID" tableName="EXPORTTEMPLATEPLACEOFUSE">
+            <column name="EXPORTTEMPLATEPLACEOFUSE_ID"/>
+        </createIndex>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.2.0/Export/changelog.xml b/.liquibase/Data_alias/basic/2021.2.0/Export/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..44a347e06d1ea9d4664f4d2ee98b1be874402a82
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.2.0/Export/changelog.xml
@@ -0,0 +1,7 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="add_ExportTemplatePlaceOfUse.xml"/>
+    <include relativeToChangelogFile="true" file="add_ExportTemplateFields_Dependency_ID.xml"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.2.0/changelog.xml b/.liquibase/Data_alias/basic/2021.2.0/changelog.xml
index ffd5d9e8477dfe7efdfcd6c59b8cab503ddba871..822f717495e2e7b04ab38705816c23e05a9f90e9 100644
--- a/.liquibase/Data_alias/basic/2021.2.0/changelog.xml
+++ b/.liquibase/Data_alias/basic/2021.2.0/changelog.xml
@@ -9,4 +9,5 @@
     <include relativeToChangelogFile="true" file="xRM-Service/changelog.xml"/>
     <include relativeToChangelogFile="true" file="Mosaico/changelog.xml"/>
     <include relativeToChangelogFile="true" file="EwsContactSync/changelog.xml"/>
+    <include relativeToChangelogFile="true" file="Export/changelog.xml"/>
 </databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplate.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplate.xml
index 873fb1848500de115bc983a22e347ef455296060..143a6c1549e4c07dbc7feeef1a4d4961898c34da 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplate.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplate.xml
@@ -1,54 +1,83 @@
-<?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="autogenerated" id="61e54a43-888e-4762-a188-45046738a877">
-    <delete tableName="exporttemplate"/>
+<?xml version="1.0" encoding="UTF-8"?>
+<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-4.1.xsd">
+  <changeSet author="s.pongratz" id="b0d902bd-317a-4a61-a0c3-c88d4697fe34">
     <insert tableName="exporttemplate">
-      <column name="FIELDDELIMITER" value="quotation mark"/>
-      <column name="ISOLANGUAGE" value="deu"/>
-      <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24"/>
-      <column name="DESCRIPTION" value="Anrede, Vor und Nachname sowie Email und Telefonnummer"/>
-      <column name="USER_EDIT" value="Admin"/>
-      <column name="TITLE" value="Personen und Kontaktmöglichkeiten"/>
-      <column name="EXPORTTEMPLATEID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/>
-      <column name="FIELDSEPARATOR" value="tabulator"/>
-      <column name="SENTENCESEPARATOR" value="carriage return and line feed"/>
-      <column name="USER_NEW" value="Admin"/>
+      <column name="EXPORTTEMPLATEID" value="3acf26f9-4807-4661-8084-c0c21c593c81" />
+      <column name="TITLE" value="Personen und Kontaktmöglichkeiten" />
+      <column name="FIELDSEPARATOR" value="tabulator" />
+      <column name="SENTENCESEPARATOR" value="carriage return and line feed" />
+      <column name="FIELDDELIMITER" value="quotation mark" />
+      <column name="ISOLANGUAGE" value="deu" />
+      <column name="DESCRIPTION" value="Anrede, Vor und Nachname sowie Email und Telefonnummer" />
+      <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" value="Admin" />
+      <column name="USER_NEW" value="Admin" />
     </insert>
     <insert tableName="exporttemplate">
-      <column name="FIELDDELIMITER" value="quotation mark"/>
-      <column name="ISOLANGUAGE" value="eng"/>
-      <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24"/>
-      <column name="DESCRIPTION" value="Anrede, Vor und Nachname sowie Email und Telefonnummer"/>
-      <column name="USER_EDIT" value="Admin"/>
-      <column name="TITLE" value="Personen und Kontaktmöglichkeiten (Englisch)"/>
-      <column name="EXPORTTEMPLATEID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/>
-      <column name="FIELDSEPARATOR" value="tabulator"/>
-      <column name="SENTENCESEPARATOR" value="carriage return and line feed"/>
-      <column name="USER_NEW" value="Admin"/>
+      <column name="EXPORTTEMPLATEID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" />
+      <column name="TITLE" value="Empfänger der Serienmail" />
+      <column name="FIELDSEPARATOR" value="semicolon" />
+      <column name="SENTENCESEPARATOR" value="carriage return and line feed" />
+      <column name="FIELDDELIMITER" value="quotation mark" />
+      <column name="ISOLANGUAGE" />
+      <column name="DESCRIPTION" value="Liste der Empfänger der ausgewählten Serienmails mit Status usw" />
+      <column name="DATE_EDIT" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="USER_NEW" />
     </insert>
     <insert tableName="exporttemplate">
-      <column name="FIELDDELIMITER" value="quotation mark"/>
-      <column name="ISOLANGUAGE" value="deu"/>
-      <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24"/>
-      <column name="DESCRIPTION" value="Name mit Anrede, Titel und vollständiger Addresse"/>
-      <column name="USER_EDIT" value="Admin"/>
-      <column name="TITLE" value="Personen mit Anschriften"/>
-      <column name="EXPORTTEMPLATEID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="FIELDSEPARATOR" value="semicolon"/>
-      <column name="SENTENCESEPARATOR" value="carriage return and line feed"/>
-      <column name="USER_NEW" value="Admin"/>
+      <column name="EXPORTTEMPLATEID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="TITLE" value="Ãœbersicht Vertriebsprojekte" />
+      <column name="FIELDSEPARATOR" value="semicolon" />
+      <column name="SENTENCESEPARATOR" value="carriage return and line feed" />
+      <column name="FIELDDELIMITER" value="quotation mark" />
+      <column name="ISOLANGUAGE" />
+      <column name="DESCRIPTION" value="Ãœbersicht von Vertriebsprojekten" />
+      <column name="DATE_EDIT" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="USER_NEW" />
     </insert>
     <insert tableName="exporttemplate">
-      <column name="FIELDDELIMITER" value="quotation mark"/>
-      <column name="ISOLANGUAGE" value="deu"/>
-      <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24"/>
-      <column name="DESCRIPTION" value="Firmen und deren Addressen"/>
-      <column name="USER_EDIT" value="Admin"/>
-      <column name="TITLE" value="Firmen mit Addressen"/>
-      <column name="EXPORTTEMPLATEID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/>
-      <column name="FIELDSEPARATOR" value="comma"/>
-      <column name="SENTENCESEPARATOR" value="carriage return and line feed"/>
-      <column name="USER_NEW" value="Admin"/>
+      <column name="EXPORTTEMPLATEID" value="86b48d2c-3850-4778-9240-45cf79396a0a" />
+      <column name="TITLE" value="Personen mit Anschriften" />
+      <column name="FIELDSEPARATOR" value="semicolon" />
+      <column name="SENTENCESEPARATOR" value="carriage return and line feed" />
+      <column name="FIELDDELIMITER" value="quotation mark" />
+      <column name="ISOLANGUAGE" value="deu" />
+      <column name="DESCRIPTION" value="Name mit Anrede, Titel und vollständiger Adresse" />
+      <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" value="Admin" />
+      <column name="USER_NEW" value="Admin" />
+    </insert>
+    <insert tableName="exporttemplate">
+      <column name="EXPORTTEMPLATEID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="TITLE" value="Teilnehmerliste" />
+      <column name="FIELDSEPARATOR" value="semicolon" />
+      <column name="SENTENCESEPARATOR" value="carriage return and line feed" />
+      <column name="FIELDDELIMITER" value="quotation mark" />
+      <column name="ISOLANGUAGE" />
+      <column name="DESCRIPTION" value="Teilnehmerliste mit allen relevanten Daten, Vorname, Name, Firma usw." />
+      <column name="DATE_EDIT" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="USER_NEW" />
+    </insert>
+    <insert tableName="exporttemplate">
+      <column name="EXPORTTEMPLATEID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="TITLE" value="Firmen mit Adressen" />
+      <column name="FIELDSEPARATOR" value="comma" />
+      <column name="SENTENCESEPARATOR" value="carriage return and line feed" />
+      <column name="FIELDDELIMITER" value="quotation mark" />
+      <column name="ISOLANGUAGE" value="deu" />
+      <column name="DESCRIPTION" value="Firmen und deren Adressen" />
+      <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" value="Admin" />
+      <column name="USER_NEW" value="Admin" />
     </insert>
   </changeSet>
-</databaseChangeLog>
\ No newline at end of file
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplatefield.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplatefield.xml
index b0c7acf8736af48ff2321381a6630cad79a6d1c9..9fd2ca3f7ea57fc3bcd8214f43491719c828c484 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplatefield.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplatefield.xml
@@ -1,144 +1,489 @@
-<?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="autogenerated" id="69fd0952-c01c-4b65-960a-4bb53d11ba31">
-    <delete tableName="exporttemplatefield"/>
+<?xml version="1.0" encoding="UTF-8"?>
+<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-4.1.xsd">
+  <changeSet author="s.pongratz" id="cb95f3fd-b07a-4a10-9c97-f1a990abc164">
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/>
-      <column name="FIELD" value="{@lastname@}"/>
-      <column name="SORTING" valueNumeric="3"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="0804cb9a-0cfb-43d6-bd37-2680e24604b0"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="06087ff5-a22c-4f35-94fc-d738aaec6eb6" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="FIELD" value="RESPONSIBLE_CONTACT_ID" />
+      <column name="SORTING" valueNumeric="6" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/>
-      <column name="FIELD" value="{@firstname@}"/>
-      <column name="SORTING" valueNumeric="2"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="10194e81-65d8-4a12-acd3-123d6a692fba"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="064fcc0b-2a26-4dc4-9d90-4289022b5638" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="PROJECTCODE" />
+      <column name="SORTING" valueNumeric="1" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="FIELD" value="{@country@}"/>
-      <column name="SORTING" valueNumeric="5"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="224cf307-fe26-4a6b-aae8-61190a2bff19"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="07ff173f-23db-4b04-9cde-d3c278ab999f" />
+      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="FIELD" value="STANDARD_COUNTRY" />
+      <column name="SORTING" valueNumeric="2" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/>
-      <column name="FIELD" value="{@salutation@}"/>
-      <column name="SORTING" valueNumeric="1"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="300aeca0-0de8-4225-99ce-bcbb850016aa"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="0d50e14b-4447-488c-b1ca-ec093bc5440a" />
+      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="FIELD" value="ADDRESS_ID" />
+      <column name="SORTING" valueNumeric="5" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="FIELD" value="{@lastname@}"/>
-      <column name="SORTING" valueNumeric="4"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="330bc05f-501e-4774-85bc-046347829dda"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="1428942a-f595-4d9a-8e30-8506b360eb9b" />
+      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" />
+      <column name="FIELD" value="STANDARD_ZIP" />
+      <column name="SORTING" valueNumeric="6" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/>
-      <column name="FIELD" value="{@phone@}"/>
-      <column name="SORTING" valueNumeric="4"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="334146d9-7950-4c59-9b07-d89eb57a0da2"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="252abd36-6dbd-49cd-a7f4-e8d99a061d88" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="STARTDATE" />
+      <column name="SORTING" valueNumeric="7" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="FIELD" value="{@firstname@}"/>
-      <column name="SORTING" valueNumeric="3"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="34c65722-937f-4741-9c08-48a841e19527"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="2a270e64-55c2-4521-a509-77a7c4f024cb" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="volumeWeighted" />
+      <column name="SORTING" valueNumeric="13" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/>
-      <column name="FIELD" value="{@address@}"/>
-      <column name="SORTING" valueNumeric="5"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="5ebc3ae4-80dd-497e-a26e-f275769f81e4"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="2e686a67-ac5c-407b-9b38-2f40168efdb1" />
+      <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" />
+      <column name="FIELD" value="CONTACT_ID" />
+      <column name="SORTING" valueNumeric="2" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="FIELD" value="{@zipCode@}"/>
-      <column name="SORTING" valueNumeric="7"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="779f6222-d1e8-4ec3-953a-31cb27115b9a"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="31be21ec-f403-42a3-a600-558b2e0133f3" />
+      <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" />
+      <column name="FIELD" value="EMAIL_ADDRESS" />
+      <column name="SORTING" valueNumeric="3" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/>
-      <column name="FIELD" value="{@email@}"/>
-      <column name="SORTING" valueNumeric="5"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="8fd83e1e-e2ef-499c-9425-0da511fdb6fb"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="32872d18-d88d-40db-afee-3d5e8d1317ab" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="FIELD" value="CAMPAIGNSTEP_ID" />
+      <column name="SORTING" valueNumeric="5" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/>
-      <column name="FIELD" value="{@salutation@}"/>
-      <column name="SORTING" valueNumeric="1"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="a9fae3fa-e2c1-4c34-a264-e74bc93e6ac9"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="34afc9f5-633d-4504-a04b-0e99b8b159a9" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="PHASE" />
+      <column name="SORTING" valueNumeric="9" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="FIELD" value="{@salutation@}"/>
-      <column name="SORTING" valueNumeric="1"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="acb36d07-089e-4a25-a0c2-694b06e74ae5"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="3bac8770-f493-4500-b61c-ba8c8430eb6b" />
+      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" />
+      <column name="FIELD" value="STANDARD_COUNTRY" />
+      <column name="SORTING" valueNumeric="5" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/>
-      <column name="FIELD" value="{@lastname@}"/>
-      <column name="SORTING" valueNumeric="3"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="ba303e1b-40c9-4fef-bbdf-6d16ab0dbeb0"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="43d1c9fa-bfb1-4d29-b03d-d7bda33e38f0" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="DATE_NEW" />
+      <column name="SORTING" valueNumeric="6" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/>
-      <column name="FIELD" value="{@country@}"/>
-      <column name="SORTING" valueNumeric="2"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="bfeb9284-6db4-4d15-a07b-9b3f21fe9c22"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="4aa7c73e-4fae-4453-ba1f-740d291b0210" />
+      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" />
+      <column name="FIELD" value="LASTNAME" />
+      <column name="SORTING" valueNumeric="3" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="FIELD" value="{@address@}"/>
-      <column name="SORTING" valueNumeric="8"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="bffb3d69-7774-438e-85b2-81fc0629462a"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="58a0832a-05bd-4fc6-b190-7224caf01ba8" />
+      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" />
+      <column name="FIELD" value="SALUTATION" />
+      <column name="SORTING" valueNumeric="1" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/>
-      <column name="FIELD" value="{@region@}"/>
-      <column name="SORTING" valueNumeric="3"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="c245bf8e-1d99-4d85-834c-64613bad5042"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="58a2a677-8459-4292-a8c7-5818f3568cac" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="ENDDATE" />
+      <column name="SORTING" valueNumeric="8" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/>
-      <column name="FIELD" value="{@zipCode@}"/>
-      <column name="SORTING" valueNumeric="4"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="c39bb945-ecd2-4836-9cee-002178ae9709"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="5c86ea95-be1f-4eb2-9b12-02bb35f5a532" />
+      <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" />
+      <column name="FIELD" value="NAME" />
+      <column name="SORTING" valueNumeric="1" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4fba481d-310a-45aa-b1ff-d1667dab141f" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/>
-      <column name="FIELD" value="{@phone@}"/>
-      <column name="SORTING" valueNumeric="4"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="cacce4e9-c9ad-4dd3-ac43-79684ef57008"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="7d36b12a-db74-4d21-908d-56902caaee86" />
+      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" />
+      <column name="FIELD" value="FIRSTNAME" />
+      <column name="SORTING" valueNumeric="2" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/>
-      <column name="FIELD" value="{@email@}"/>
-      <column name="SORTING" valueNumeric="5"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="d01169d3-aab0-4233-b5ec-02ede86995cf"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="7db7cf51-5da9-41f4-911d-87f322c1bc68" />
+      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" />
+      <column name="FIELD" value="ADDRESS_ID" />
+      <column name="SORTING" valueNumeric="7" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/>
-      <column name="FIELD" value="{@orgname@}"/>
-      <column name="SORTING" valueNumeric="1"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="e153ea76-5e68-497a-8a3e-9bb40ce734b3"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="896ec040-5b57-4ca6-b4e5-42cadd18682a" />
+      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" />
+      <column name="FIELD" value="SALUTATION" />
+      <column name="SORTING" valueNumeric="1" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="FIELD" value="{@title@}"/>
-      <column name="SORTING" valueNumeric="2"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="e1b5c9c8-846a-4195-af5c-09e923c1c1c6"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="8e0f578f-43dc-43d3-8c48-ec174f466c23" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="FIELD" value="STANDARD_EMAIL_COMMUNICATION" />
+      <column name="SORTING" valueNumeric="7" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/>
-      <column name="FIELD" value="{@firstname@}"/>
-      <column name="SORTING" valueNumeric="2"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="e319ac75-3468-4167-8f0d-568a0dfaef7d"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="97607099-0219-4245-a5e7-a340973e74ea" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="FIELD" value="STANDARD_PHONE_COMMUNICATION" />
+      <column name="SORTING" valueNumeric="8" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
     <insert tableName="exporttemplatefield">
-      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="FIELD" value="{@region@}"/>
-      <column name="SORTING" valueNumeric="6"/>
-      <column name="EXPORTTEMPLATEFIELDID" value="e9f1cd83-5652-4f5b-913b-40dea9eda1c8"/>
+      <column name="EXPORTTEMPLATEFIELDID" value="98ab5af0-f780-4723-b64f-9dc186eb4fc5" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="VOLUME" />
+      <column name="SORTING" valueNumeric="12" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="98deeade-09b5-46b3-b0d8-b8ecc3950f90" />
+      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" />
+      <column name="FIELD" value="STANDARD_EMAIL_COMMUNICATION" />
+      <column name="SORTING" valueNumeric="5" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="999b389f-2e64-433d-8acc-f1a62f49942c" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="PROBABILITY" />
+      <column name="SORTING" valueNumeric="11" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="9bd8c67a-2a07-4998-b47e-b6eccfc28a9b" />
+      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" />
+      <column name="FIELD" value="TITLE" />
+      <column name="SORTING" valueNumeric="2" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="9e6cc3fa-dbb1-49bd-839b-6999f289194c" />
+      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" />
+      <column name="FIELD" value="FIRSTNAME" />
+      <column name="SORTING" valueNumeric="3" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="a2f51b99-0add-424c-ba85-8ad690b4d33d" />
+      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="FIELD" value="STANDARD_ZIP" />
+      <column name="SORTING" valueNumeric="4" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="a3fd3c48-9b00-4de6-9fed-044b89266508" />
+      <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" />
+      <column name="FIELD" value="STATUS" />
+      <column name="SORTING" valueNumeric="5" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="aa33fc39-ca51-4cd9-a11a-e9fbdb2e2d2d" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="PROJECTTITLE" />
+      <column name="SORTING" valueNumeric="2" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="ab0190b1-fbb5-485f-ade7-e1953f14bc27" />
+      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" />
+      <column name="FIELD" value="STANDARD_PHONE_COMMUNICATION" />
+      <column name="SORTING" valueNumeric="4" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="ada14af6-4daf-4448-bbbf-baa70c3b69ac" />
+      <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" />
+      <column name="FIELD" value="IS_TEST_RECIPIENT" />
+      <column name="SORTING" valueNumeric="4" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="adf9b254-aece-4a52-a48b-ddd559507810" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="STATUS" />
+      <column name="SORTING" valueNumeric="10" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="ae2c4074-c8b2-458e-8afc-e395b7d0b033" />
+      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="FIELD" value="NAME" />
+      <column name="SORTING" valueNumeric="1" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="c1fc93ee-93c0-46c5-a5f8-50ee48730fff" />
+      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" />
+      <column name="FIELD" value="LASTNAME" />
+      <column name="SORTING" valueNumeric="4" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="c245bf8e-1d99-4d85-834c-64613bad5042" />
+      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="FIELD" value="{@region@}" />
+      <column name="SORTING" valueNumeric="3" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="c6958ee7-0043-40c5-9e4d-36e0539a7108" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="InactiveTime" />
+      <column name="SORTING" valueNumeric="5" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="c6c5b3f4-463a-46d4-a41d-e626d0779ffe" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="CONTACT_ID" />
+      <column name="SORTING" valueNumeric="3" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="cef3af15-0882-4d9b-998e-33c1a8a3bb16" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="FIELD" value="FIRSTNAME" />
+      <column name="SORTING" valueNumeric="2" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e0a19680-fd01-49a3-9993-ac57fc37d403" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="d32d0a6b-c315-47e8-bedf-ff49b529d232" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="FIELD" value="LASTNAME" />
+      <column name="SORTING" valueNumeric="3" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e0a19680-fd01-49a3-9993-ac57fc37d403" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="db86c14a-3eef-4910-aa06-ff2d1a19d92d" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="FIELD" value="NAME" />
+      <column name="SORTING" valueNumeric="1" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="a148ad53-b921-45f0-81d4-e573a5c05661" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="dbb557ad-00eb-402f-b4e7-e90a86d228d4" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="FIELD" value="CLASSIFICATIONVALUE" />
+      <column name="SORTING" valueNumeric="4" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="e296802a-04a5-4860-8f8c-63be42dd932b" />
+      <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" />
+      <column name="FIELD" value="SENTDATE" />
+      <column name="SORTING" valueNumeric="6" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplatefield">
+      <column name="EXPORTTEMPLATEFIELDID" value="f0311199-5555-4eda-8964-752857d0bbb9" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="FIELD" value="CONTACT_ORGANISATION_ID" />
+      <column name="SORTING" valueNumeric="4" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
   </changeSet>
-</databaseChangeLog>
\ No newline at end of file
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplateplaceofuse.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplateplaceofuse.xml
index a48b54def84be4bde31a284e85a5d5dc0c82855e..40a5c48680df6d7a3f727f01428cddaa26224117 100644
--- a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplateplaceofuse.xml
+++ b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplateplaceofuse.xml
@@ -1,26 +1,161 @@
-<?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="autogenerated" id="fb7d1b86-3a39-4fe4-b963-0c61abebca52">
-    <delete tableName="exporttemplateplaceofuse"/>
+<?xml version="1.0" encoding="UTF-8"?>
+<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-4.1.xsd">
+  <changeSet author="s.pongratz" id="2ab02746-44f6-414e-922c-0b43ea0f3ab3">
     <insert tableName="exporttemplateplaceofuse">
-      <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/>
-      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="135975c6-6c7a-408b-93e3-f04239503ff0"/>
-      <column name="PLACEOFUSE" value="Person"/>
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" />
+      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" />
+      <column name="PLACEOFUSE" value="Person" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" />
+      <column name="OBJECT_FILTER" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" value="Admin" />
+      <column name="DATE_EDIT" valueDate="2021-09-29T08:05:30" />
     </insert>
     <insert tableName="exporttemplateplaceofuse">
-      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/>
-      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f"/>
-      <column name="PLACEOFUSE" value="Person"/>
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" />
+      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" />
+      <column name="PLACEOFUSE" value="Person" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" />
+      <column name="OBJECT_FILTER" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" value="Admin" />
+      <column name="DATE_EDIT" valueDate="2021-09-29T08:40:37" />
     </insert>
     <insert tableName="exporttemplateplaceofuse">
-      <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/>
-      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819"/>
-      <column name="PLACEOFUSE" value="Person"/>
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="4fba481d-310a-45aa-b1ff-d1667dab141f" />
+      <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" />
+      <column name="PLACEOFUSE" value="BulkMail" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" />
+      <column name="OBJECT_FILTER" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-30T11:19:47" />
+      <column name="USER_EDIT" value="Admin" />
+      <column name="DATE_EDIT" valueDate="2021-09-30T11:40:16" />
     </insert>
     <insert tableName="exporttemplateplaceofuse">
-      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/>
-      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="86865c59-aa8b-4511-bf3d-b069395c684d"/>
-      <column name="PLACEOFUSE" value="Organisation"/>
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="510ce9f1-9903-4978-9457-7bb85e85c71c" />
+      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="PLACEOFUSE" value="Offeritem" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="94b03949-623a-4898-91cf-32ff21befaac" />
+      <column name="OBJECT_FILTER" value="{&quot;entity&quot;:&quot;Offeritem_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[]}}" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-29T09:30:33" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplateplaceofuse">
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="58390700-4308-45c2-865f-ea86cb38e7f5" />
+      <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" />
+      <column name="PLACEOFUSE" value="Address" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" />
+      <column name="OBJECT_FILTER" value="{&quot;entity&quot;:&quot;Address_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[]}}" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-29T08:26:27" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplateplaceofuse">
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="58c8768c-0d1b-4a68-a7c1-4d2d35fe3431" />
+      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="PLACEOFUSE" value="Address" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" />
+      <column name="OBJECT_FILTER" value="{&quot;entity&quot;:&quot;Address_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[]}}" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-29T09:32:08" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplateplaceofuse">
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="86865c59-aa8b-4511-bf3d-b069395c684d" />
+      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="PLACEOFUSE" value="Organisation" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" />
+      <column name="OBJECT_FILTER" />
+      <column name="USER_NEW" />
+      <column name="DATE_NEW" />
+      <column name="USER_EDIT" value="Admin" />
+      <column name="DATE_EDIT" valueDate="2021-09-29T08:49:04" />
+    </insert>
+    <insert tableName="exporttemplateplaceofuse">
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="94b03949-623a-4898-91cf-32ff21befaac" />
+      <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" />
+      <column name="PLACEOFUSE" value="Offer" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" />
+      <column name="OBJECT_FILTER" value="{&quot;entity&quot;:&quot;Offer_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[]}}" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-29T09:30:23" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplateplaceofuse">
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" />
+      <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" />
+      <column name="PLACEOFUSE" value="BulkMailRecipient" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4fba481d-310a-45aa-b1ff-d1667dab141f" />
+      <column name="OBJECT_FILTER" value="{&quot;entity&quot;:&quot;BulkMailRecipient_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[]}}" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-30T11:20:24" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplateplaceofuse">
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="a148ad53-b921-45f0-81d4-e573a5c05661" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="PLACEOFUSE" value="Campaign" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" />
+      <column name="OBJECT_FILTER" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-30T11:04:56" />
+      <column name="USER_EDIT" value="Admin" />
+      <column name="DATE_EDIT" valueDate="2021-09-30T11:07:11" />
+    </insert>
+    <insert tableName="exporttemplateplaceofuse">
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="PLACEOFUSE" value="CampaignParticipant" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="a148ad53-b921-45f0-81d4-e573a5c05661" />
+      <column name="OBJECT_FILTER" value="{&quot;entity&quot;:&quot;CampaignParticipant_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[]}}" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-30T11:07:59" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplateplaceofuse">
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="e0a19680-fd01-49a3-9993-ac57fc37d403" />
+      <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" />
+      <column name="PLACEOFUSE" value="Person" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" />
+      <column name="OBJECT_FILTER" value="{&quot;entity&quot;:&quot;Person_entity&quot;,&quot;filter&quot;:{&quot;type&quot;:&quot;group&quot;,&quot;operator&quot;:&quot;AND&quot;,&quot;childs&quot;:[]}}" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-30T11:25:58" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
+    </insert>
+    <insert tableName="exporttemplateplaceofuse">
+      <column name="EXPORTTEMPLATEPLACEOFUSEID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" />
+      <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" />
+      <column name="PLACEOFUSE" value="Salesproject" />
+      <column name="TITLE" />
+      <column name="EXPORTTEMPLATEPLACEOFUSE_ID" />
+      <column name="OBJECT_FILTER" />
+      <column name="USER_NEW" value="Admin" />
+      <column name="DATE_NEW" valueDate="2021-09-30T11:42:32" />
+      <column name="USER_EDIT" />
+      <column name="DATE_EDIT" />
     </insert>
   </changeSet>
-</databaseChangeLog>
\ No newline at end of file
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml
index e211a0f400b6d71748232707325c22af7fbf936c..b55ed31802b0171eb979ba27c488a46982645380 100644
--- a/.liquibase/Data_alias/changelog.xml
+++ b/.liquibase/Data_alias/changelog.xml
@@ -28,7 +28,7 @@
     <include relativeToChangelogFile="true" file="basic/2021.1.2/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2021.1.3/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2021.2.0/changelog.xml"/>
-    
+
     <include relativeToChangelogFile="true" file="basic/workflows/changelog.xml" context="workflow"/>
     <include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index d6205b14448e2c879d925663c600583bc3781067..ba8a6cf1629d22cd4c2bcaae90d4f114303ecb31 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -14332,6 +14332,104 @@
                   </entityDependency>
                 </dependencies>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>EXPORTTEMPLATEPLACEOFUSE_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_FILTER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="-1" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <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="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <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" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TITLE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="150" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -14658,6 +14756,76 @@
                   </entityDependency>
                 </dependencies>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <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="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <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" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>EXPORTTEMPLATEPLACEOFUSE_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
diff --git a/aliasDefinition/Data_alias_noAudit/Data_alias_noAudit.aod b/aliasDefinition/Data_alias_noAudit/Data_alias_noAudit.aod
index b3519c357f472cb7e6708fa5e34c80e7d237ab3a..8ba25ef273b8803d603907d914676fe6b3ce1178 100644
--- a/aliasDefinition/Data_alias_noAudit/Data_alias_noAudit.aod
+++ b/aliasDefinition/Data_alias_noAudit/Data_alias_noAudit.aod
@@ -375,6 +375,104 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>EXPORTTEMPLATEPLACEOFUSE_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>OBJECT_FILTER</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="-1" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <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="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <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" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TITLE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="150" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
@@ -14589,6 +14687,76 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="19" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <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="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <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" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>EXPORTTEMPLATEPLACEOFUSE_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="true" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod
index 19f43ebcb586a085f8f43e823fd2d4dace177c97..5a95e209f60d6d026a2f8406f132dc440eaa1b37 100644
--- a/entity/BulkMail_entity/BulkMail_entity.aod
+++ b/entity/BulkMail_entity/BulkMail_entity.aod
@@ -550,6 +550,17 @@
           <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/stateProcess.js</stateProcess>
           <titleProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/titleProcess.js</titleProcess>
         </entityActionField>
+        <entityActionField>
+          <name>export</name>
+          <title>Export</title>
+          <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <iconId>NEON:EXPORT</iconId>
+          <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/stateProcess.js</stateProcess>
+          <tooltip>Export fields of this table</tooltip>
+          <tooltipProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
       </children>
     </entityActionGroup>
     <entityActionField>
diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/onActionProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6c68dcef71d0a7db12fd4d25819640764899dbad
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/onActionProcess.js
@@ -0,0 +1,11 @@
+import("ExportTemplate_lib");
+import("system.vars");
+
+var selection = vars.get("$sys.selection");
+
+if(selection.length == 0)     //no selection -> use Filtercondition;
+{
+    selection = vars.get("$sys.filter");
+}
+
+ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname"));
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/stateProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7fc578ee7942eeb948f08d3dd86f5950d3fa1c41
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/stateProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("FilterViewAction_lib");
+import("system.vars");
+
+var contactCount = vars.get("$sys.datarowcount");
+
+result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount));
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/tooltipProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4aaaed5c074ef854441aa45e3e7993b2f77c04c4
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("Export columns using a exporttemplate"));
\ No newline at end of file
diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod
index 15fab50f35ce1f2913fcb8acb86e88c0b67304c8..f2379d3a6494932a6dd60629f32c45c4a53c33f3 100644
--- a/entity/Campaign_entity/Campaign_entity.aod
+++ b/entity/Campaign_entity/Campaign_entity.aod
@@ -42,6 +42,17 @@
           <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
           <titleProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
         </entityActionField>
+        <entityActionField>
+          <name>export</name>
+          <title>Export</title>
+          <onActionProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/export/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <iconId>NEON:EXPORT</iconId>
+          <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/export/stateProcess.js</stateProcess>
+          <tooltip>Export fields of this table</tooltip>
+          <tooltipProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
       </children>
     </entityActionGroup>
     <entityProvider>
diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/export/onActionProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6c68dcef71d0a7db12fd4d25819640764899dbad
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/onActionProcess.js
@@ -0,0 +1,11 @@
+import("ExportTemplate_lib");
+import("system.vars");
+
+var selection = vars.get("$sys.selection");
+
+if(selection.length == 0)     //no selection -> use Filtercondition;
+{
+    selection = vars.get("$sys.filter");
+}
+
+ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname"));
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/export/stateProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7fc578ee7942eeb948f08d3dd86f5950d3fa1c41
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/stateProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("FilterViewAction_lib");
+import("system.vars");
+
+var contactCount = vars.get("$sys.datarowcount");
+
+result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount));
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4aaaed5c074ef854441aa45e3e7993b2f77c04c4
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("Export columns using a exporttemplate"));
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod b/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod
index 971d3efbf5b977a3fb4487665096b021cc0616fe..657050d20ec94a04c0eff6c74a61d1c7e04bb17e 100644
--- a/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod
+++ b/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod
@@ -4,6 +4,11 @@
   <title>Export Template Field</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ExportTemplateField_entity/documentation.adoc</documentation>
+  <siblings>
+    <element>ExportTemplatePlaceOfUse_entity</element>
+  </siblings>
+  <grantUpdate v="false" />
+  <contentTitleProcess>%aditoprj%/entity/ExportTemplateField_entity/contentTitleProcess.js</contentTitleProcess>
   <titlePlural>Export Template Fields</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -29,13 +34,20 @@
       <title>Field</title>
       <mandatory v="true" />
       <dropDownProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js</dropDownProcess>
+      <stateProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/field/stateProcess.js</stateProcess>
+      <displayValueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/field/displayValueProcess.js</displayValueProcess>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
     </entityField>
     <entityProvider>
       <name>ExportTemplateFields</name>
       <documentation>%aditoprj%/entity/ExportTemplateField_entity/entityfields/exporttemplatefields/documentation.adoc</documentation>
     </entityProvider>
     <entityParameter>
-      <name>ExportTemplateField_param</name>
+      <name>ExportTemplateId_param</name>
       <expose v="true" />
     </entityParameter>
     <entityField>
@@ -44,12 +56,75 @@
       <contentType>NUMBER</contentType>
       <outputFormat>###</outputFormat>
       <inputFormat>###</inputFormat>
-      <mandatory v="true" />
+      <mandatory v="false" />
     </entityField>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>ExportTemplatePlacesOfUse</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ExportTemplatePlaceOfUse_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ExportTemplateId_param</name>
+          <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityField>
+      <name>EXPORTTEMPLATEPLACEOFUSE_ID</name>
+      <title>Place of Use</title>
+      <consumer>ExportTemplatePlacesOfUse</consumer>
+      <mandatory v="true" />
+      <onValueChange>%aditoprj%/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js</onValueChange>
+    </entityField>
+    <entityField>
+      <name>placeOfUse</name>
+      <title>Place of Use</title>
+      <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/placeofuse/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/placeofuse/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityActionGroup>
+      <name>MoveActions</name>
+      <title>Move</title>
+      <children>
+        <entityActionField>
+          <name>Down</name>
+          <title></title>
+          <onActionProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:ANGLE_DOWN</iconId>
+          <stateProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/stateProcess.js</stateProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>Up</name>
+          <title></title>
+          <onActionProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:ANGLE_UP</iconId>
+          <stateProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/stateProcess.js</stateProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -58,6 +133,8 @@
       <isReadOnly v="false" />
       <conditionProcess>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
       <orderClauseProcess>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
+      <onDBInsert>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/onDBInsert.js</onDBInsert>
+      <onDBDelete>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
@@ -76,10 +153,30 @@
           <name>SORTING.value</name>
           <recordfield>EXPORTTEMPLATEFIELD.SORTING</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>EXPORTTEMPLATEFIELD.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>EXPORTTEMPLATEFIELD.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>EXPORTTEMPLATEFIELD.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>EXPORTTEMPLATEFIELD.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>EXPORTTEMPLATEPLACEOFUSE_ID.value</name>
+          <recordfield>EXPORTTEMPLATEFIELD.EXPORTTEMPLATEPLACEOFUSE_ID</recordfield>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
       <linkInformation>
         <linkInformation>
-          <name>7236de85-f623-4f6a-9ff5-d9014a2f7a4c</name>
+          <name>4cec9829-254f-4588-9abf-a224a390a172</name>
           <tableName>EXPORTTEMPLATEFIELD</tableName>
           <primaryKey>EXPORTTEMPLATEFIELDID</primaryKey>
           <isUIDTable v="true" />
diff --git a/entity/ExportTemplateField_entity/contentTitleProcess.js b/entity/ExportTemplateField_entity/contentTitleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..52bd0deb2169ccfd1f5d531869b4e2fe4304d298
--- /dev/null
+++ b/entity/ExportTemplateField_entity/contentTitleProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.FIELD"));
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/date_edit/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2af46a8e46789056c6c341a8e4e087f8e1edc0c4
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+{
+    result.string(vars.get("$sys.date"));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/date_new/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d5cf2ff4f91546bf853125bec438493692a5e048
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$sys.date"));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/exporttemplate_id/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/exporttemplate_id/valueProcess.js
index 76dc5ef71d45ba4b444c21383abcbd8281f1e26f..fe71bb2cb95ec8ed9488118ac627cf17d082bc69 100644
--- a/entity/ExportTemplateField_entity/entityfields/exporttemplate_id/valueProcess.js
+++ b/entity/ExportTemplateField_entity/entityfields/exporttemplate_id/valueProcess.js
@@ -1,9 +1,10 @@
 import("system.result");
 import("system.neon");
 import("system.vars");
+import("Util_lib");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(Utils.isNotNullOrEmptyString(vars.getString("$param.ExportTemplateId_param")) && Utils.isNullOrEmptyString(vars.getString("$this.value")))
 {
-    if(vars.exists("$param.ExportTemplateField_param") && vars.get("$param.ExportTemplateField_param") != null)
-        result.string(vars.getString("$param.ExportTemplateField_param"));    
-}
\ No newline at end of file
+    result.string(vars.getString("$param.ExportTemplateId_param")); 
+}
+           
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..be49d03de451c24366fc615db9b981efb4e15661
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$param.ExportTemplateId_param"))
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..be49d03de451c24366fc615db9b981efb4e15661
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$param.ExportTemplateId_param"))
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/field/displayValueProcess.js b/entity/ExportTemplateField_entity/entityfields/field/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..173f0d3ec44861d0b1c3e5c3da2a8ae9559e72ad
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/field/displayValueProcess.js
@@ -0,0 +1,18 @@
+import("system.result");
+import("system.project");
+import("Util_lib");
+import("system.vars");
+import("system.entities");
+import("Context_lib");
+
+if (Utils.isNotNullOrEmptyString(vars.getString("$this.value")))
+{
+    let type = vars.getString("$field.placeOfUse");
+
+    if (Utils.isNotNullOrEmptyString(type))
+    {
+        var fields = project.getEntityStructure(ContextUtils.getEntity(type)).fields;
+    
+        result.string(fields[vars.getString("$this.value")].title);
+    }
+}
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js b/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js
index 3c830477d519292b231f502d1caa9cffc392f984..671728966e3d1b25b66fd779e4aad824133e89ab 100644
--- a/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js
+++ b/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js
@@ -1,15 +1,31 @@
+import("ExportTemplate_lib");
+import("Util_lib");
+import("system.vars");
+import("system.entities");
+import("Context_lib");
+import("system.project");
 import("system.result");
 import("Placeholder_lib");
-import("system.text")
+import("system.text");
 
+let type = vars.getString("$field.placeOfUse");
 
-//The current selection of Exportfields is created by using the Placeholder function "PlaceholderUtils.getPlaceholders()".
-//if you want to add more fields, you just have to add the function "CustomPlaceholderUtils.getPlaceholders()" to the dropDownProcess 
-//and add the desired Fields as placeholders in the CustomPlaceholder_lib.
+if (!Utils.isNullOrEmpty(type))
+{
+    var resultFields = [];
+    var entity = ContextUtils.getEntity(type);
+    var fields = project.getEntityStructure(entity).fields;
+    var excludeFields = ExportTemplateUtils.excludedFields()[entity] || [];
+        
+    for (var field in fields)
+    {
+        if (fields[field].fieldType == project.ENTITYFIELDTYPE_FIELD && excludeFields.indexOf(field) == -1)
+        {
+            let title = fields[field].title ? fields[field].title : fields[field].name;
+            resultFields.push([fields[field].name, title]);
+        }
+  
+    }
 
-    
-var placeholders = PlaceholderUtils.getPlaceholders(null, true).map(function (placeholder){
-    return [placeholder.getFormattedName(), placeholder.title || placeholder.getFormattedName()];
-})
-
-result.object(placeholders);
\ No newline at end of file
+    result.object(resultFields);
+}
diff --git a/entity/ExportTemplateField_entity/entityfields/field/stateProcess.js b/entity/ExportTemplateField_entity/entityfields/field/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..871d7d670a1603b16fc0a86ad3ad344a87eecba1
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/field/stateProcess.js
@@ -0,0 +1,14 @@
+import("Util_lib");
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if (Utils.isNullOrEmptyString(vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID")) 
+    && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
diff --git a/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/onActionProcess.js b/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c06102416278aac37343d7c70a2151f57debd9f2
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/onActionProcess.js
@@ -0,0 +1,15 @@
+import("system.vars");
+import("Sql_lib");
+import("system.neon");
+
+// The sorting value of the following field is set to the current sorting value
+newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID"))
+.and("EXPORTTEMPLATEFIELD.SORTING", parseInt(vars.get("$field.SORTING")) + 1)
+.updateFields({"SORTING":vars.get("$field.SORTING")}, "EXPORTTEMPLATEFIELD");
+
+// The sorting is increased by one for the current field
+newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID"))
+.and("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", vars.get("$field.EXPORTTEMPLATEFIELDID"))
+.updateFields({"SORTING":(parseInt(vars.get("$field.SORTING")) + 1)}, "EXPORTTEMPLATEFIELD");
+
+neon.refreshAll();
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/stateProcess.js b/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..aeb2fdc86a54722b08df6d06a7e6e99c691e8689
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/stateProcess.js
@@ -0,0 +1,14 @@
+import("Sql_lib");
+import("system.result");
+import("system.vars");
+import("system.neon");
+
+let maxSorting = newSelect(new SqlMaskingUtils().max("SORTING"))
+.from("EXPORTTEMPLATEFIELD")
+.where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID"))
+.cell();
+
+if (vars.get("$field.SORTING") == maxSorting) 
+{
+    result.string(neon.COMPONENTSTATE_DISABLED);
+}
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/onActionProcess.js b/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2835e61598f7386c73ac100e57f1ade18bc4d47e
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/onActionProcess.js
@@ -0,0 +1,13 @@
+import("system.vars");
+import("Sql_lib");
+import("system.neon");
+
+newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID"))
+.and("EXPORTTEMPLATEFIELD.SORTING", parseInt(vars.get("$field.SORTING")) - 1)
+.updateFields({"SORTING":vars.get("$field.SORTING")}, "EXPORTTEMPLATEFIELD");
+
+newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID"))
+.and("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", vars.get("$field.EXPORTTEMPLATEFIELDID"))
+.updateFields({"SORTING":(parseInt(vars.get("$field.SORTING")) - 1)}, "EXPORTTEMPLATEFIELD");
+
+neon.refreshAll();
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/stateProcess.js b/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff98b8b28e4578c4468b50ecef18acb36e628797
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/stateProcess.js
@@ -0,0 +1,9 @@
+import("Util_lib");
+import("system.result");
+import("system.vars");
+import("system.neon");
+
+if (vars.get("$field.SORTING") == 1 || Utils.isNullOrEmpty(vars.get("$field.SORTING"))) 
+{
+    result.string(neon.COMPONENTSTATE_DISABLED);
+}
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/placeofuse/displayValueProcess.js b/entity/ExportTemplateField_entity/entityfields/placeofuse/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1634464ae492abc975dd02449be0d684362faa23
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/placeofuse/displayValueProcess.js
@@ -0,0 +1,11 @@
+import("Util_lib");
+import("system.vars");
+import("Context_lib");
+import("system.project");
+import("system.result");
+
+if (Utils.isNotNullOrEmptyString(vars.getString("$this.value")))
+{
+    let title = ContextUtils.getTranslatedTitle(vars.getString("$this.value")) || vars.getString("$this.value");
+    result.string(title);
+}
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/placeofuse/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/placeofuse/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ff5f51c28d2599e9a73ee18b02d4d20a4bab195
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/placeofuse/valueProcess.js
@@ -0,0 +1,22 @@
+import("Util_lib");
+import("system.result");
+import("system.entities");
+import("system.vars");
+
+let loadConfig = entities.createConfigForLoadingConsumerRows()
+.consumer("ExportTemplatePlacesOfUse")
+.fields(["PLACEOFUSE", "#UID"]);
+
+let filtertConsumerRows = entities.getRows(loadConfig).find(_findUIDRow, {
+    UID: vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID")
+});
+
+if (!Utils.isNullOrEmpty(filtertConsumerRows))
+{
+    result.string(filtertConsumerRows["PLACEOFUSE"]);
+}
+
+function _findUIDRow (pRow)
+{
+    return pRow["#UID"] === this.UID;
+}
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/user_edit/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b874a7ac426b8e99383ac949299b9753e4951f2b
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+{
+    result.string(vars.get("$sys.user"));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/entityfields/user_new/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3f8db68b950a0505d6179cb67c14dde624c45070
--- /dev/null
+++ b/entity/ExportTemplateField_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$sys.user"));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js b/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js
index 0a8fd4155c358a1f28eecdeba07050276ed58e5b..5195254f656b5dfbc0ad70e280064dcc56dc4458 100644
--- a/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js
@@ -2,6 +2,6 @@ import("system.vars");
 import("system.result");
 import("Sql_lib");
 
-var cond = newWhereIfSet("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", "$param.ExportTemplateField_param");
+var cond = newWhereIfSet("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", "$param.ExportTemplateId_param");
 result.string(cond);
 
diff --git a/entity/ExportTemplateField_entity/recordcontainers/db/onDBDelete.js b/entity/ExportTemplateField_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..0ad3890b048495757cfe3eb70ac5d85356d19df0
--- /dev/null
+++ b/entity/ExportTemplateField_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,18 @@
+import("system.vars");
+import("Sql_lib");
+import("system.db");
+
+let updateStatements = [];
+let sorting = vars.get("$field.SORTING");
+let fields = newSelect("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID")
+.from("EXPORTTEMPLATEFIELD")
+.where("EXPORTTEMPLATEFIELD.SORTING",sorting, SqlBuilder.GREATER())
+.and("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID"))
+.orderBy("EXPORTTEMPLATEFIELD.SORTING").arrayColumn();
+
+fields.forEach(function (pFieldId, pIndex){
+    updateStatements.push(newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", pFieldId)
+    .buildUpdateStatement({"SORTING" : parseInt(sorting) + pIndex }, "EXPORTTEMPLATEFIELD"));
+});
+
+db.updates(updateStatements);
\ No newline at end of file
diff --git a/entity/ExportTemplateField_entity/recordcontainers/db/onDBInsert.js b/entity/ExportTemplateField_entity/recordcontainers/db/onDBInsert.js
new file mode 100644
index 0000000000000000000000000000000000000000..f6607d593faf825e45e834c3bd225fc980dc5eca
--- /dev/null
+++ b/entity/ExportTemplateField_entity/recordcontainers/db/onDBInsert.js
@@ -0,0 +1,13 @@
+import("system.vars");
+import("Sql_lib");
+
+let sorting = newSelect([new SqlMaskingUtils().max("EXPORTTEMPLATEFIELD.SORTING")])
+.from("EXPORTTEMPLATEFIELD")
+.where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID"))
+.cell();
+
+sorting = parseInt(sorting);
+
+// The field is only sorted in the onInsert, so I can make sure that it is very likely that there are not two identical numbers.
+newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", vars.get("$local.uid"))
+    .updateFields({"SORTING" : ((sorting ? sorting : 0) +1) }, "EXPORTTEMPLATEFIELD")
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod b/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod
index 5ef84de7e6b853b11d7cf013ed96e5f854cb3ef9..c641aa1da42c27646c590d0659e150ec4a1a24f8 100644
--- a/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod
+++ b/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod
@@ -4,18 +4,68 @@
   <title>Place of Use</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc</documentation>
-  <titlePlural>Places of Usage</titlePlural>
+  <siblings>
+    <element>ExportTemplateField_entity</element>
+  </siblings>
+  <grantUpdate v="false" />
+  <contentTitleProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/contentTitleProcess.js</contentTitleProcess>
+  <titlePlural>Dependencies</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
       <name>#PROVIDER</name>
     </entityProvider>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <isMenuAction v="true" />
+      <isObjectAction v="true" />
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <contentType>DATE</contentType>
+      <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <contentType>DATE</contentType>
+      <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityProvider>
+      <name>#PROVIDER_AGGREGATES</name>
+      <useAggregates v="true" />
+    </entityProvider>
     <entityField>
       <name>EXPORTTEMPLATEPLACEOFUSEID</name>
       <title>EXPORTTEMPLATEPLACEOFUSEID</title>
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js</valueProcess>
     </entityField>
+    <entityField>
+      <name>EXPORTTEMPLATEPLACEOFUSE_ID</name>
+      <title>Predecessor</title>
+      <consumer>ExportTemplatePlacesOfUse</consumer>
+      <mandatory v="true" />
+      <mandatoryProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/mandatoryProcess.js</mandatoryProcess>
+      <stateProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/stateProcess.js</stateProcess>
+      <onValueChange>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js</onValueChange>
+      <onValueChangeTypes>
+        <element>MASK</element>
+        <element>PROCESS</element>
+        <element>PROCESS_SETVALUE</element>
+      </onValueChangeTypes>
+    </entityField>
     <entityField>
       <name>EXPORTTEMPLATE_ID</name>
       <title>Exporttemplate</title>
@@ -26,69 +76,124 @@
       <name>PLACEOFUSE</name>
       <documentation>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc</documentation>
       <title>Place of use</title>
-      <consumer>ContextExportTemplatePlaceOfUse</consumer>
+      <consumer>Contexts</consumer>
       <mandatory v="true" />
+      <stateProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/stateProcess.js</stateProcess>
+      <titleProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/titleProcess.js</titleProcess>
       <displayValueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js</displayValueProcess>
+      <onValueChange>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/onValueChange.js</onValueChange>
+    </entityField>
+    <entityField>
+      <name>OBJECT_FILTER</name>
+      <title>Filter</title>
+      <contentType>FILTER_TREE</contentType>
+      <stateProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/valueProcess.js</valueProcess>
     </entityField>
+    <entityParameter>
+      <name>ExportTemplateId_param</name>
+      <expose v="true" />
+      <mandatory v="true" />
+    </entityParameter>
     <entityConsumer>
-      <name>ContextExportTemplatePlaceOfUse</name>
+      <name>Contexts</name>
       <dependency>
         <name>dependency</name>
         <entityName>Context_entity</entityName>
-        <fieldName>ContextTemplatePlaceOfUse</fieldName>
+        <fieldName>Exclusive</fieldName>
       </dependency>
       <children>
         <entityParameter>
           <name>InvertBlacklist_param</name>
-          <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/invertblacklist_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js</valueProcess>
         </entityParameter>
         <entityParameter>
           <name>Blacklist_param</name>
-          <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/blacklist_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/blacklist_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
     <entityParameter>
-      <name>ExportTemplatePlaceOfUse_param</name>
+      <name>ExportTemplatePlaceOfUseID_param</name>
       <expose v="true" />
     </entityParameter>
-    <entityProvider>
-      <name>ExportTemplatePlaceOfUser</name>
-      <documentation>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuser/documentation.adoc</documentation>
+    <entityParameter>
+      <name>IsMainPlaceOfUse_param</name>
+      <expose v="true" />
+    </entityParameter>
+    <entityConsumer>
+      <name>ExportTemplatePlacesOfUse</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>#ENTITY</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
       <children>
         <entityParameter>
-          <name>ExportTemplatePlaceOfUse_param</name>
-          <expose v="true" />
+          <name>ExportTemplatePlaceOfUseID_param</name>
+        </entityParameter>
+        <entityParameter>
+          <name>ExportTemplateId_param</name>
+          <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
-    </entityProvider>
-    <entityProvider>
-      <name>#PROVIDER_AGGREGATES</name>
-      <useAggregates v="true" />
-    </entityProvider>
+    </entityConsumer>
+    <entityField>
+      <name>TITLE</name>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
+      <isPageable v="false" />
+      <hasDependentRecords v="true" />
       <conditionProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <onDBDelete>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/onDBDelete.js</onDBDelete>
       <alias>Data_alias</alias>
       <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>EXPORTTEMPLATEPLACEOFUSE.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>EXPORTTEMPLATEPLACEOFUSE.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>EXPORTTEMPLATE_ID.value</name>
           <recordfield>EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>EXPORTTEMPLATEPLACEOFUSE_ID.value</name>
+          <recordfield>EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID</recordfield>
+        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>EXPORTTEMPLATEPLACEOFUSEID.value</name>
           <recordfield>EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSEID</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>OBJECT_FILTER.value</name>
+          <recordfield>EXPORTTEMPLATEPLACEOFUSE.OBJECT_FILTER</recordfield>
+        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>PLACEOFUSE.value</name>
           <recordfield>EXPORTTEMPLATEPLACEOFUSE.PLACEOFUSE</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>EXPORTTEMPLATEPLACEOFUSE.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>EXPORTTEMPLATEPLACEOFUSE.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TITLE.value</name>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
       <linkInformation>
         <linkInformation>
-          <name>5e6f806e-c845-49ab-bfee-31b12e4c41f3</name>
+          <name>06fe6e4f-5ab7-404a-b820-7c23fc4a520b</name>
           <tableName>EXPORTTEMPLATEPLACEOFUSE</tableName>
           <primaryKey>EXPORTTEMPLATEPLACEOFUSEID</primaryKey>
           <isUIDTable v="true" />
diff --git a/entity/ExportTemplatePlaceOfUse_entity/contentTitleProcess.js b/entity/ExportTemplatePlaceOfUse_entity/contentTitleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a974c8c7914cd2c8cd3d56dbfd54a91f186dacfa
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/contentTitleProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.PLACEOFUSE"));
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc b/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc
deleted file mode 100644
index a61ae5a651de0f753557aa094ba139dc5c3957a5..0000000000000000000000000000000000000000
--- a/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc
+++ /dev/null
@@ -1,9 +0,0 @@
-= ExportTemplatePlaceOfUse_entity
-
-Entity to select all Modules where the created template should be useable (to limit the availability in the modules).
-
-The selection of Places Of usage is created via the link to the context_entity and limiting it 
-by the Blacklist_param (which is being inverted to an whitelist thanks to the invertBlacklist_param).
-
-Linked via the ExportTemplateID to ExportTemplates.
-Own dbTable and Entity are to make it possible to store multiple fields for one template.
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/blacklist_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/blacklist_param/valueProcess.js
deleted file mode 100644
index 9e45ce3b6cda9f9cffa1f8c6046d4267f2eb0a61..0000000000000000000000000000000000000000
--- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/blacklist_param/valueProcess.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import("system.result");
-
-result.object(["Person", "Organisation"]);
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/blacklist_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/blacklist_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..289f1a413d80a3add469ae4915172a6776a54546
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/blacklist_param/valueProcess.js
@@ -0,0 +1,41 @@
+import("ExportTemplate_lib");
+import("Context_lib");
+import("Dependency_lib");
+import("Observation_lib");
+import("system.vars");
+import("system.result");
+import("Sql_lib")
+
+let placeOfUse;
+let contexts = [];
+let entityNames;
+
+if (vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID"))
+{
+    placeOfUse = newSelect("EXPORTTEMPLATEPLACEOFUSE.PLACEOFUSE")
+        .from("EXPORTTEMPLATEPLACEOFUSE")
+        .where("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSEID", vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID"))
+        .cell();
+}
+
+if (placeOfUse)
+{
+    entityNames = Dependency.getDependency(ContextUtils.getEntity(placeOfUse), {
+        "isExportable" : true
+    });
+}
+else
+{
+    entityNames = ExportTemplateUtils.exportableEntities();
+}
+
+for (let i = 0; i < entityNames.length; i++) 
+{
+    let context = ContextUtils.getContextId(entityNames[i]);
+    if (context)
+    {
+        contexts.push(context);
+    }
+}
+
+result.string(JSON.stringify(contexts));
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..40effa0178464da0c7850912345f19c7fa95975a
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string(true);
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_edit/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2af46a8e46789056c6c341a8e4e087f8e1edc0c4
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+{
+    result.string(vars.get("$sys.date"));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_new/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d5cf2ff4f91546bf853125bec438493692a5e048
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$sys.date"));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplate_id/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplate_id/valueProcess.js
index 7c84123ee891ea1b5d0719e8b77ae5cc7a0ca33b..d375ac965253d49ab53cd40c380df1e4bd9d8a88 100644
--- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplate_id/valueProcess.js
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplate_id/valueProcess.js
@@ -1,10 +1,9 @@
+import("Util_lib");
 import("system.result");
 import("system.neon");
 import("system.vars");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(!Utils.isNullOrEmpty(vars.getString("$param.ExportTemplateId_param")) && Utils.isNullOrEmpty(vars.get("$this.value")))
 {
-    if(vars.exists("$param.ExportTemplatePlaceOfUse_param") && vars.get("$param.ExportTemplatePlaceOfUse_param") != null
-    && vars.get("$sys.recordstate") ==  neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
-        result.string(vars.getString("$param.ExportTemplatePlaceOfUse_param"));    
+    result.string(vars.getString("$param.ExportTemplateId_param"));
 }
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/mandatoryProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/mandatoryProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..fb63b4864fee1cabf68f849cdab01fe7a9ba8b0a
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/mandatoryProcess.js
@@ -0,0 +1,5 @@
+import("Util_lib");
+import("system.vars");
+import("system.result");
+
+result.string(!Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param")));
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..c570d33c4d73c61ecfacfa6a5b089dcfa4d96374
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js
@@ -0,0 +1,5 @@
+import("Context_lib");
+import("system.vars");
+
+// If the place of use of the export template is changed, the selected place of use no longer matches the parent.
+vars.set("$field.PLACEOFUSE", null);
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/stateProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..924fa6c76f892bf6f5c14e1f10f6a4bf53b08547
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/stateProcess.js
@@ -0,0 +1,10 @@
+import("system.vars");
+import("Util_lib");
+import("system.result");
+import("system.neon");
+
+// If this is the Main PlaceOfUse, there the parent One is null
+if (Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param")))
+{
+    result.string(neon.COMPONENTSTATE_INVISIBLE);
+}
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js
index d81b1c1049eb25c998728bf5e0b90bada3a24e8d..067717d36961db97edf8c1e05f4b43ead60a4b52 100644
--- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js
@@ -4,4 +4,7 @@ import("system.util");
 import("system.vars");
 
 if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
-result.string(util.getNewUUID());
\ No newline at end of file
+{
+    result.string(util.getNewUUID());
+}
+
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuser/documentation.adoc b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuser/documentation.adoc
deleted file mode 100644
index 9713220ef692ca2f93ca9047460db28270795e3c..0000000000000000000000000000000000000000
--- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuser/documentation.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-= ExportTemplatePlaceOfUse_entity - ExportTemplatePlaceOfUser
-
-needed instead of the #PROVIDER so the ExportTemplatePlaceOfUse_param can be used
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..001cc890f029455658cd08a1d8ad7ce8259f24d7
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$param.ExportTemplateId_param"));
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..001cc890f029455658cd08a1d8ad7ce8259f24d7
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$param.ExportTemplateId_param"));
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/stateProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..679e8717260d56278206209c3dc3b517dfe526b6
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/stateProcess.js
@@ -0,0 +1,17 @@
+import("Util_lib");
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+let state;
+
+if (!Utils.isNullOrEmpty(vars.get("$field.PLACEOFUSE")) && !Utils.isNullOrEmpty(vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID")))
+{
+    state = neon.COMPONENTSTATE_EDITABLE;
+}
+else
+{
+    state = neon.COMPONENTSTATE_INVISIBLE;
+}
+
+result.string(state);
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..077a69be63354948d7599480c4bf234cfd9a72c6
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/valueProcess.js
@@ -0,0 +1,18 @@
+import("JditoFilter_lib");
+import("Util_lib");
+import("Observation_lib");
+import("system.vars");
+import("system.result");
+
+let resFilter;
+
+if (!Utils.isNullOrEmpty(vars.get("$this.value")) && !Utils.isNullOrEmpty(vars.get("$field.PLACEOFUSE"))) 
+{
+    resFilter = JditoFilterUtils.getContextFilter(vars.get("$field.PLACEOFUSE"), null);
+}
+
+if (resFilter)
+{
+    result.string(resFilter);
+}
+    
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/onActionProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..be9984d0b0f68cabba9d60cd3404b7063374b4e3
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/onActionProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("Context_lib");
+
+AdminViewUtils.open("", []);
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/stateProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..38f2298db7304b4d44a15fbad7f720558c02da99
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/stateProcess.js
@@ -0,0 +1,4 @@
+import("Context_lib");
+import("system.result");
+
+result.string(AdminViewUtils.getActionState());
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js
index dd3384b9ec0af65bca467795cd70e356e2e08fe4..dda429b59d3dc879f6d66653ed762fddfc26722e 100644
--- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js
@@ -1,8 +1,12 @@
+import("system.translate");
+import("Util_lib");
 import("system.vars");
-import("system.result");
 import("Context_lib");
+import("system.project");
+import("system.result");
 
-var placeOfUse = vars.get("$field.PLACEOFUSE");
-
-if(placeOfUse)
-result.string(ContextUtils.getTitle(placeOfUse, true));
\ No newline at end of file
+if (Utils.isNotNullOrEmptyString(vars.getString("$this.value")))
+{
+    let title = ContextUtils.getTranslatedTitle(vars.getString("$this.value")) || translate.text(vars.getString("$this.value"));
+    result.string(title);
+}
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc
deleted file mode 100644
index 38a9ff1a0f6494d732d9d7fe50d771885f7496fa..0000000000000000000000000000000000000000
--- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-= PlaceOfuse
-
-The selection of Places Of usage is created via the link to the context_entity and limiting it 
-by the Blacklist_param (which is being inverted to an whitelist thanks to the invertBlacklist_param).
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/onValueChange.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/onValueChange.js
new file mode 100644
index 0000000000000000000000000000000000000000..e96809eae5c79ded9a2456c13793f208f5f6faf6
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/onValueChange.js
@@ -0,0 +1,8 @@
+import("JditoFilter_lib");
+import("Util_lib");
+import("system.vars");
+
+if (!Utils.isNullOrEmpty(vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID")))
+{
+    vars.set("$field.OBJECT_FILTER", JditoFilterUtils.getContextFilter(vars.get("$this.value"), null));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/stateProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..20fc8dccf50778351e6ffde02caa9518556780ea
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/stateProcess.js
@@ -0,0 +1,21 @@
+import("Util_lib");
+import("system.neon");
+import("system.vars");
+import("system.result");
+
+let state;
+
+if (!Utils.isNullOrEmpty(vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID")) || Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param")))
+{
+    state = neon.COMPONENTSTATE_EDITABLE;
+}
+else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    state = neon.COMPONENTSTATE_INVISIBLE;
+}
+else
+{
+    state = neon.COMPONENTSTATE_READONLY;
+}
+
+result.string(state);
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/titleProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3ecda2e88772989f3e48f3ff3e482cfd6ac38b24
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/titleProcess.js
@@ -0,0 +1,9 @@
+import("system.translate");
+import("system.vars");
+import("Util_lib");
+import("system.result");
+
+if (!Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param")))
+{
+    result.string(translate.text("Dependency"));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_edit/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..b874a7ac426b8e99383ac949299b9753e4951f2b
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+{
+    result.string(vars.get("$sys.user"));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_new/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3f8db68b950a0505d6179cb67c14dde624c45070
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,8 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+{
+    result.string(vars.get("$sys.user"));
+}
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js b/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js
index 30942689497eb2091398b6c15fb77fa8267a5806..a3490df303d908344ba798f904a69a6076de4627 100644
--- a/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js
@@ -1,6 +1,21 @@
 import("system.vars");
 import("system.result");
 import("Sql_lib");
+import("Util_lib");
 
-var cond = newWhereIfSet("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID", "$param.ExportTemplatePlaceOfUse_param");
-result.string(cond);
\ No newline at end of file
+let isMainPlaceOfUse = Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param"));
+let isParentPlaceOfUseIdFilled = Utils.toBoolean(vars.get("$param.ExportTemplatePlaceOfUseID_param"));
+let exportTemplateId = vars.get("$param.ExportTemplateId_param");
+
+let cond = newWhereIfSet("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID", exportTemplateId);
+
+if (isMainPlaceOfUse)
+{
+    cond.and("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID IS NULL");
+}
+else if (isParentPlaceOfUseIdFilled)
+{
+    cond.and("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID IS NOT NULL");
+}
+
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/onDBDelete.js b/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/onDBDelete.js
new file mode 100644
index 0000000000000000000000000000000000000000..2bb03e6ffba889fd320be5ad65ae54bf965aa3a0
--- /dev/null
+++ b/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/onDBDelete.js
@@ -0,0 +1,28 @@
+import("system.translate");
+import("system.question");
+import("system.db");
+import("system.vars");
+import("Sql_lib");
+
+let countDeletedRows = newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEPLACEOFUSE_ID", vars.get("$field.EXPORTTEMPLATEPLACEOFUSEID"))
+.and("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID"))
+.deleteData(true, "EXPORTTEMPLATEFIELD");
+
+if (countDeletedRows > 0)
+{
+    question.showMessage(translate.text("Deleting the dependency also deletes its fields."), question.INFORMATION, translate.text("Fields of Dependency"));
+    let updateStatements = [];
+    let fields = newSelect("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID")
+    .from("EXPORTTEMPLATEFIELD")
+    .where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID"))
+    .orderBy("EXPORTTEMPLATEFIELD.SORTING").arrayColumn();
+
+    fields.forEach(function (pFieldId, pIndex){
+        updateStatements.push(newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", pFieldId)
+            .buildUpdateStatement({
+                "SORTING" : pIndex + 1
+            }, "EXPORTTEMPLATEFIELD"));
+    });
+    //The gaps created by deleting the dependent fields are closed.
+    db.updates(updateStatements);
+}
diff --git a/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod b/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod
index 5c5e00cfcb49e5cb3ae07a120b0e467b89041a00..7f406a333783ddf4fbdcdec44e903ae4d16f6345 100644
--- a/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod
+++ b/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod
@@ -45,6 +45,14 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>Languages</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>Language_entity</entityName>
+        <fieldName>ISO3Name</fieldName>
+      </dependency>
+    </entityConsumer>
     <entityField>
       <name>UID</name>
       <state>EDITABLE</state>
@@ -87,6 +95,19 @@
       <name>#PROVIDER_AGGREGATES</name>
       <useAggregates v="true" />
     </entityProvider>
+    <entityField>
+      <name>ISOLANGUAGE</name>
+      <consumer>Languages</consumer>
+      <state>INVISIBLE</state>
+      <valueProcess>%aditoprj%/entity/ExportTemplateSelection_entity/entityfields/isolanguage/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/ExportTemplateSelection_entity/entityfields/isolanguage/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityField>
+      <name>charset</name>
+      <title>Charset</title>
+      <dropDownProcess>%aditoprj%/entity/ExportTemplateSelection_entity/entityfields/charset/dropDownProcess.js</dropDownProcess>
+      <state>EDITABLE</state>
+    </entityField>
   </entityFields>
   <recordContainers>
     <datalessRecordContainer>
diff --git a/entity/ExportTemplateSelection_entity/entityfields/charset/dropDownProcess.js b/entity/ExportTemplateSelection_entity/entityfields/charset/dropDownProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3e47786c24e9684a064259923ad38c356aafaac2
--- /dev/null
+++ b/entity/ExportTemplateSelection_entity/entityfields/charset/dropDownProcess.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.object([["UTF-8", "UTF-8"]]);
\ No newline at end of file
diff --git a/entity/ExportTemplate_entity/entityfields/isolanguage/displayValueProcess.js b/entity/ExportTemplateSelection_entity/entityfields/isolanguage/displayValueProcess.js
similarity index 100%
rename from entity/ExportTemplate_entity/entityfields/isolanguage/displayValueProcess.js
rename to entity/ExportTemplateSelection_entity/entityfields/isolanguage/displayValueProcess.js
diff --git a/entity/ExportTemplate_entity/entityfields/isolanguage/valueProcess.js b/entity/ExportTemplateSelection_entity/entityfields/isolanguage/valueProcess.js
similarity index 83%
rename from entity/ExportTemplate_entity/entityfields/isolanguage/valueProcess.js
rename to entity/ExportTemplateSelection_entity/entityfields/isolanguage/valueProcess.js
index 2bb039c219ee635fbd789a66704d4f5dd483dbfb..574a9ebe136046ed2bccfcde532d19ee19ce53b7 100644
--- a/entity/ExportTemplate_entity/entityfields/isolanguage/valueProcess.js
+++ b/entity/ExportTemplateSelection_entity/entityfields/isolanguage/valueProcess.js
@@ -3,4 +3,7 @@ import("system.neon");
 import("system.vars");
 
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.getString("$this.value") == null)
-    result.string("deu");
\ No newline at end of file
+{
+    result.string("deu");
+}
+    
\ No newline at end of file
diff --git a/entity/ExportTemplateSelection_entity/entityfields/safeandexport/onActionProcess.js b/entity/ExportTemplateSelection_entity/entityfields/safeandexport/onActionProcess.js
index 66ee0547575d06eeb39f33b7ede5258e639295dc..0f971c77dd629f6479980c7f816214ec4ca6dbd6 100644
--- a/entity/ExportTemplateSelection_entity/entityfields/safeandexport/onActionProcess.js
+++ b/entity/ExportTemplateSelection_entity/entityfields/safeandexport/onActionProcess.js
@@ -1,16 +1,30 @@
+import("system.process");
+import("Employee_lib");
 import("system.neon");
 import("system.vars");
 import("ExportTemplate_lib");
 
 var filename = vars.get("$field.FILENAME");
 var templateId = vars.get("$field.EXPORTTEMPLATE_ID");
-var selection = vars.get("$field.selection");
+var selection = JSON.stringify(vars.get("$field.selection"));
 var comingFrom = vars.get("$field.comingfrom");
+var charset = vars.get("$field.charset");
 
 if(templateId)
 {
-    var document = ExportTemplateUtils.buildExport(templateId, selection, comingFrom, filename);
-    neon.download(document.content, document.filename);
+    var user = EmployeeUtils.getCurrentUserId();
+    var processConfig = process.createStartAsyncConfig()
+        .setName("buildExport_serverProcess")
+        .setLocalVariables({
+            "selection" : selection,
+            "exportTemplateId" : templateId,
+            "charset" : charset,
+            "filename" : filename,
+            "user" : user
+        })
+        .setUser(vars.get("$sys.user"));
+    process.startAsync(processConfig);
     //since we do not open something after the download we need to close the window where the action is placed
     neon.closeImage(vars.get("$sys.currentimage"), true);
+    
 }
\ No newline at end of file
diff --git a/entity/ExportTemplate_entity/ExportTemplate_entity.aod b/entity/ExportTemplate_entity/ExportTemplate_entity.aod
index 48a62cdd0966b6bbe80a745fb17b579bcc982de5..4cea3664caaf81a16515e7a4967cde5cc2270001 100644
--- a/entity/ExportTemplate_entity/ExportTemplate_entity.aod
+++ b/entity/ExportTemplate_entity/ExportTemplate_entity.aod
@@ -36,14 +36,6 @@
       <dropDownProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/fieldseparator/dropDownProcess.js</dropDownProcess>
       <textInputAllowed v="true" />
     </entityField>
-    <entityField>
-      <name>ISOLANGUAGE</name>
-      <title>Language</title>
-      <consumer>Languages</consumer>
-      <mandatory v="true" />
-      <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/isolanguage/valueProcess.js</valueProcess>
-      <displayValueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/isolanguage/displayValueProcess.js</displayValueProcess>
-    </entityField>
     <entityField>
       <name>DATE_EDIT</name>
       <contentType>DATE</contentType>
@@ -63,17 +55,9 @@
       <title>Description</title>
       <contentType>LONG_TEXT</contentType>
     </entityField>
-    <entityConsumer>
-      <name>Languages</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>Language_entity</entityName>
-        <fieldName>ISO3Name</fieldName>
-      </dependency>
-    </entityConsumer>
     <entityConsumer>
       <name>ExportTemplateFields</name>
-      <state>EDITABLE</state>
+      <refreshParent v="true" />
       <dependency>
         <name>dependency</name>
         <entityName>ExportTemplateField_entity</entityName>
@@ -81,7 +65,7 @@
       </dependency>
       <children>
         <entityParameter>
-          <name>ExportTemplateField_param</name>
+          <name>ExportTemplateId_param</name>
           <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/valueProcess.js</valueProcess>
           <expose v="true" />
           <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/documentation.adoc</documentation>
@@ -93,21 +77,6 @@
       <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateids_param/valueProcess.js</valueProcess>
       <expose v="true" />
     </entityParameter>
-    <entityConsumer>
-      <name>ExportTemplateplaceOfUseCon</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>ExportTemplatePlaceOfUse_entity</entityName>
-        <fieldName>ExportTemplatePlaceOfUser</fieldName>
-      </dependency>
-      <children>
-        <entityParameter>
-          <name>ExportTemplatePlaceOfUse_param</name>
-          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateplaceofusecon/children/exporttemplateplaceofuse_param/valueProcess.js</valueProcess>
-          <expose v="true" />
-        </entityParameter>
-      </children>
-    </entityConsumer>
     <entityProvider>
       <name>ExportTemplateIDs</name>
       <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateids/documentation.adoc</documentation>
@@ -139,8 +108,8 @@
       <textInputAllowed v="true" />
     </entityField>
     <entityField>
-      <name>EXPORTTEMPLATE_OBJECTTYPE</name>
-      <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplate_objecttype/valueProcess.js</valueProcess>
+      <name>exportTemplateObjectType</name>
+      <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateobjecttype/valueProcess.js</valueProcess>
     </entityField>
     <entityProvider>
       <name>#PROVIDER_AGGREGATES</name>
@@ -153,6 +122,60 @@
       <iconId>VAADIN:CURLY_BRACKETS</iconId>
       <stateProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/openadminview/stateProcess.js</stateProcess>
     </entityActionField>
+    <entityConsumer>
+      <name>ExportTemplatePlacesOfUse</name>
+      <refreshParent v="true" />
+      <dependency>
+        <name>dependency</name>
+        <entityName>ExportTemplatePlaceOfUse_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ExportTemplateId_param</name>
+          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>ExportTemplatePlaceOfUseID_param</name>
+          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateplaceofuseid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ExportTemplateMainPlaceOfUse</name>
+      <isOneToOneRelationship v="true" />
+      <dependency>
+        <name>dependency</name>
+        <entityName>ExportTemplatePlaceOfUse_entity</entityName>
+        <fieldName>#PROVIDER</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ExportTemplateId_param</name>
+          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/exporttemplateid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+        <entityParameter>
+          <name>IsMainPlaceOfUse_param</name>
+          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/ismainplaceofuse_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+    <entityConsumer>
+      <name>ExportTemplateFieldsPreview</name>
+      <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/documentation.adoc</documentation>
+      <state>READONLY</state>
+      <dependency>
+        <name>dependency</name>
+        <entityName>ExportTemplateField_entity</entityName>
+        <fieldName>ExportTemplateFields</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ExportTemplateId_param</name>
+          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/children/exporttemplateid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -170,12 +193,6 @@
           <name>DATE_NEW.value</name>
           <recordfield>EXPORTTEMPLATE.DATE_NEW</recordfield>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ISOLANGUAGE.value</name>
-          <recordfield>EXPORTTEMPLATE.ISOLANGUAGE</recordfield>
-          <isFilterable v="true" />
-          <isLookupFilter v="true" />
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>EXPORTTEMPLATEID.value</name>
           <recordfield>EXPORTTEMPLATE.EXPORTTEMPLATEID</recordfield>
@@ -198,11 +215,6 @@
           <name>DESCRIPTION.value</name>
           <recordfield>EXPORTTEMPLATE.DESCRIPTION</recordfield>
         </dbRecordFieldMapping>
-        <dbRecordFieldMapping>
-          <name>ISOLANGUAGE.displayValue</name>
-          <isFilterable v="true" />
-          <isLookupFilter v="true" />
-        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>TITLE.displayValue</name>
           <isFilterable v="true" />
@@ -223,7 +235,7 @@
       </recordFieldMappings>
       <linkInformation>
         <linkInformation>
-          <name>ce410f40-846b-43e6-9c30-150393cee43d</name>
+          <name>3b838097-7531-42c2-abee-db95cce7c729</name>
           <tableName>EXPORTTEMPLATE</tableName>
           <primaryKey>EXPORTTEMPLATEID</primaryKey>
           <isUIDTable v="true" />
diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/children/exporttemplateid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..3cbc49005642cf289c724b7b2de89a5db926e630
--- /dev/null
+++ b/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/children/exporttemplateid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.EXPORTTEMPLATEID"));
\ No newline at end of file
diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/documentation.adoc b/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..87813a66bc64775d1518863cda388c18721e1607
--- /dev/null
+++ b/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/documentation.adoc
@@ -0,0 +1 @@
+This Consumer is a Workaround for the fields in the preview so that they cannot be edited.
\ No newline at end of file
diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplateplaceofusecon/children/exporttemplateplaceofuse_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/exporttemplateid_param/valueProcess.js
similarity index 100%
rename from entity/ExportTemplate_entity/entityfields/exporttemplateplaceofusecon/children/exporttemplateplaceofuse_param/valueProcess.js
rename to entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/exporttemplateid_param/valueProcess.js
diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/invertblacklist_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/ismainplaceofuse_param/valueProcess.js
similarity index 100%
rename from entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/invertblacklist_param/valueProcess.js
rename to entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/ismainplaceofuse_param/valueProcess.js
diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplate_objecttype/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplateobjecttype/valueProcess.js
similarity index 100%
rename from entity/ExportTemplate_entity/entityfields/exporttemplate_objecttype/valueProcess.js
rename to entity/ExportTemplate_entity/entityfields/exporttemplateobjecttype/valueProcess.js
diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d8e00008de741ec03a1997e0bd169d0acd7f4cc7
--- /dev/null
+++ b/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.EXPORTTEMPLATEID"));
\ No newline at end of file
diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateplaceofuseid_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateplaceofuseid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9bdc0c36bbda23a5a14dc48d29423e1979f0ee01
--- /dev/null
+++ b/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateplaceofuseid_param/valueProcess.js
@@ -0,0 +1,9 @@
+import("Entity_lib");
+import("system.result");
+
+// Transfer of the UID of the main place of use with the help of the consumer.
+result.string(new EntityConsumerRowsHelper()
+        .consumer("ExportTemplateMainPlaceOfUse")
+        .fetchRowsFromConsumer()
+        .getRows()[0]["#UID"]);
+        
\ No newline at end of file
diff --git a/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
index 57784ebda7e75d58197542d071b5afb2a61cc74e..3832b22bd97d302fcdf45333a3240016072281d2 100644
--- a/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
+++ b/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js
@@ -6,7 +6,7 @@ import("Sql_lib");
 var operator = vars.get("$local.operator");
 var rawvalue = vars.get("$local.rawvalue");
 
-var objecttype = vars.get("$field.EXPORTTEMPLATE_OBJECTTYPE");
+var objecttype = vars.get("$field.exportTemplateObjectType");
 var idcolumn = "EXPORTTEMPLATE.EXPORTTEMPLATEID";
 
 result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js b/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js
index ce4ed3a334253f41bc34a9e5751e2e316485f481..37a3f5dbb180129c0cac6bf9f33e23c5ba05cc0f 100644
--- a/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js
+++ b/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js
@@ -13,4 +13,4 @@ if (vars.get("$field.OBSERVATION_ID"))
         .cell();
 }
 
-result.object(Observation.getAllContextValue(type));
\ No newline at end of file
+    result.object(Observation.getAllContextValue(type));
\ No newline at end of file
diff --git a/entity/Observation_entity/entityfields/object_filter/valueProcess.js b/entity/Observation_entity/entityfields/object_filter/valueProcess.js
index df026f7192e7752d7364fa8739aad1c0973d3acc..5df8f1ef2df62ce0338c8c20c8521e697d088342 100644
--- a/entity/Observation_entity/entityfields/object_filter/valueProcess.js
+++ b/entity/Observation_entity/entityfields/object_filter/valueProcess.js
@@ -1,5 +1,5 @@
+import("JditoFilter_lib");
 import("Observation_lib");
-import("Context_lib");
 import("system.vars");
 import("system.result");
 
@@ -8,7 +8,7 @@ let resFilter;
 
 if ((vars.get("$this.value") == null || vars.get("$this.value") == "") && vars.get("$field.OBJECT_TYPE") && !vars.get("$field.OBJECT_ID") && !filterParam) 
 {
-    resFilter = Observation.getContextFilter(vars.get("$field.OBJECT_TYPE"), null);
+    resFilter = JditoFilterUtils.getContextFilter(vars.get("$field.OBJECT_TYPE"), null);
 }
 else if (!vars.get("$this.value") && filterParam) 
 {
diff --git a/entity/Observation_entity/recordcontainers/db/onDBInsert.js b/entity/Observation_entity/recordcontainers/db/onDBInsert.js
index aa3b524a0b205afb4d6793903fc229447669fc89..18326447c59744ab1733c0474408dc6969ccbbcd 100644
--- a/entity/Observation_entity/recordcontainers/db/onDBInsert.js
+++ b/entity/Observation_entity/recordcontainers/db/onDBInsert.js
@@ -1,3 +1,4 @@
+import("JditoFilter_lib");
 import("system.vars");
 import("Observation_lib");
 import("system.entities");
@@ -14,7 +15,7 @@ if (vars.get("$field.includeDependencies") == "1")
             "OBJECT_FIELD" : Observation.getAllFieldValue(contextID).toString(),
             "includeDependencies" : false,
             "OBSERVATION_ID" : observation_id,
-            "OBJECT_FILTER" : Observation.getContextFilter(contextID, null)
+            "OBJECT_FILTER" : JditoFilterUtils.getContextFilter(contextID, null)
         }
 
         let createRowConfig = entities.createConfigForAddingRows()
diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index 3eeea68776f6dfddf0736b8794cfeb338f7eefcd..3a3141a0516d08027b51893b5a2f7622a427cf85 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -18,6 +18,17 @@
   <titlePlural>Offers</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
+    <entityActionField>
+      <name>export</name>
+      <title>Export</title>
+      <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/export/onActionProcess.js</onActionProcess>
+      <isMenuAction v="true" />
+      <isObjectAction v="false" />
+      <iconId>NEON:EXPORT</iconId>
+      <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/export/stateProcess.js</stateProcess>
+      <tooltip>Export fields of this table</tooltip>
+      <tooltipProcess>%aditoprj%/entity/Offer_entity/entityfields/export/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
     <entityProvider>
       <name>#PROVIDER</name>
     </entityProvider>
diff --git a/entity/Offer_entity/entityfields/export/onActionProcess.js b/entity/Offer_entity/entityfields/export/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6c68dcef71d0a7db12fd4d25819640764899dbad
--- /dev/null
+++ b/entity/Offer_entity/entityfields/export/onActionProcess.js
@@ -0,0 +1,11 @@
+import("ExportTemplate_lib");
+import("system.vars");
+
+var selection = vars.get("$sys.selection");
+
+if(selection.length == 0)     //no selection -> use Filtercondition;
+{
+    selection = vars.get("$sys.filter");
+}
+
+ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname"));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/export/stateProcess.js b/entity/Offer_entity/entityfields/export/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7fc578ee7942eeb948f08d3dd86f5950d3fa1c41
--- /dev/null
+++ b/entity/Offer_entity/entityfields/export/stateProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("FilterViewAction_lib");
+import("system.vars");
+
+var contactCount = vars.get("$sys.datarowcount");
+
+result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount));
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/export/tooltipProcess.js b/entity/Offer_entity/entityfields/export/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4aaaed5c074ef854441aa45e3e7993b2f77c04c4
--- /dev/null
+++ b/entity/Offer_entity/entityfields/export/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("Export columns using a exporttemplate"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js
index ecad88623a921908ff07c1929560d806ff8c440d..6c68dcef71d0a7db12fd4d25819640764899dbad 100644
--- a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js
@@ -1,14 +1,11 @@
 import("ExportTemplate_lib");
 import("system.vars");
 
-var sysSelection = vars.get("$sys.selection");
+var selection = vars.get("$sys.selection");
 
-if(sysSelection.length > 0)     //if data selected -> use selected data
+if(selection.length == 0)     //no selection -> use Filtercondition;
 {
-    ExportTemplateUtils.addParticipantsByRowIds(JSON.stringify(sysSelection), vars.get("$sys.currentcontextname"));
+    selection = vars.get("$sys.filter");
 }
-else                            //else -> use Filtercondition
-{
-    let sysFilter = vars.get("$sys.filter");
-    ExportTemplateUtils.addParticipantsByCondition(JSON.stringify(sysFilter), vars.get("$sys.currentcontextname"));
-}
\ No newline at end of file
+
+ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js
index ecad88623a921908ff07c1929560d806ff8c440d..6c68dcef71d0a7db12fd4d25819640764899dbad 100644
--- a/entity/Person_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js
@@ -1,14 +1,11 @@
 import("ExportTemplate_lib");
 import("system.vars");
 
-var sysSelection = vars.get("$sys.selection");
+var selection = vars.get("$sys.selection");
 
-if(sysSelection.length > 0)     //if data selected -> use selected data
+if(selection.length == 0)     //no selection -> use Filtercondition;
 {
-    ExportTemplateUtils.addParticipantsByRowIds(JSON.stringify(sysSelection), vars.get("$sys.currentcontextname"));
+    selection = vars.get("$sys.filter");
 }
-else                            //else -> use Filtercondition
-{
-    let sysFilter = vars.get("$sys.filter");
-    ExportTemplateUtils.addParticipantsByCondition(JSON.stringify(sysFilter), vars.get("$sys.currentcontextname"));
-}
\ No newline at end of file
+
+ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 970e68b2e4fb6c103a3c33196f4186c9006c6617..a869641a5b7dce9cb61e167c092bf8a0e6e88c7a 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -769,6 +769,17 @@
           <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess>
           <titleProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess>
         </entityActionField>
+        <entityActionField>
+          <name>export</name>
+          <title>Export</title>
+          <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js</onActionProcess>
+          <isMenuAction v="true" />
+          <isObjectAction v="false" />
+          <iconId>NEON:EXPORT</iconId>
+          <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js</stateProcess>
+          <tooltip>Export fields of this table</tooltip>
+          <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js</tooltipProcess>
+        </entityActionField>
       </children>
     </entityActionGroup>
     <entityActionField>
diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6c68dcef71d0a7db12fd4d25819640764899dbad
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js
@@ -0,0 +1,11 @@
+import("ExportTemplate_lib");
+import("system.vars");
+
+var selection = vars.get("$sys.selection");
+
+if(selection.length == 0)     //no selection -> use Filtercondition;
+{
+    selection = vars.get("$sys.filter");
+}
+
+ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname"));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7fc578ee7942eeb948f08d3dd86f5950d3fa1c41
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("FilterViewAction_lib");
+import("system.vars");
+
+var contactCount = vars.get("$sys.datarowcount");
+
+result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount));
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4aaaed5c074ef854441aa45e3e7993b2f77c04c4
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("Export columns using a exporttemplate"));
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 89355045b13d089a1be2c3b5124b426beba37cac..c0dec5cc101010be254693ba27a95db96b9ec379 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -11003,6 +11003,75 @@
     <entry>
       <key>Inbox \"%0\" has been deleted.</key>
     </entry>
+    <entry>
+      <key>Move</key>
+    </entry>
+    <entry>
+      <key>Dependencies</key>
+    </entry>
+    <entry>
+      <key>ExportTemplateDependency</key>
+    </entry>
+    <entry>
+      <key>Employee for Employee groups</key>
+    </entry>
+    <entry>
+      <key>testfilter</key>
+    </entry>
+    <entry>
+      <key>Adito Versafix</key>
+    </entry>
+    <entry>
+      <key>Charset</key>
+    </entry>
+    <entry>
+      <key>Unique click rate (in %)</key>
+    </entry>
+    <entry>
+      <key>Employees for Employee groups</key>
+    </entry>
+    <entry>
+      <key>Last Click</key>
+    </entry>
+    <entry>
+      <key>Opener rate (in %)</key>
+    </entry>
+    <entry>
+      <key>Evaluation type</key>
+    </entry>
+    <entry>
+      <key>remove hashtags from favorite titles</key>
+    </entry>
+    <entry>
+      <key>Valid district contacts</key>
+    </entry>
+    <entry>
+      <key>default</key>
+    </entry>
+    <entry>
+      <key>Verknuepfungen</key>
+    </entry>
+    <entry>
+      <key>Action mail</key>
+    </entry>
+    <entry>
+      <key>unsubscribe</key>
+    </entry>
+    <entry>
+      <key>Copy Participants</key>
+    </entry>
+    <entry>
+      <key>Technical email</key>
+    </entry>
+    <entry>
+      <key>ignore</key>
+    </entry>
+    <entry>
+      <key>Click rate (in %)</key>
+    </entry>
+    <entry>
+      <key>Dependency</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 7334db9832223bf1ce445304804324c43fcd63db..e87c99efc3226b85b833b9cc34a2eb00945b80af 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -11228,11 +11228,11 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Standard Country</key>
-      <value>Standartland</value>
+      <value>Standardland</value>
     </entry>
     <entry>
       <key>Standard Zip</key>
-      <value>Standart Plz</value>
+      <value>Standard Plz</value>
     </entry>
     <entry>
       <key>Outstanding Amount</key>
@@ -13154,6 +13154,7 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Open Admin View</key>
+      <value>Admin-Ansicht öffnen</value>
     </entry>
     <entry>
       <key>Attendees</key>
@@ -14337,6 +14338,78 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>We save your data until</key>
     </entry>
+    <entry>
+      <key>Dependencies</key>
+      <value>Abhängigkeiten</value>
+    </entry>
+    <entry>
+      <key>Dependency</key>
+      <value>Abhängigkeit</value>
+    </entry>
+    <entry>
+      <key>ExportTemplateDependency</key>
+      <value>Export Vorlage Abhängigkeit</value>
+    </entry>
+    <entry>
+      <key>Employee for Employee groups</key>
+    </entry>
+    <entry>
+      <key>testfilter</key>
+    </entry>
+    <entry>
+      <key>Adito Versafix</key>
+    </entry>
+    <entry>
+      <key>Charset</key>
+    </entry>
+    <entry>
+      <key>Unique click rate (in %)</key>
+    </entry>
+    <entry>
+      <key>Employees for Employee groups</key>
+    </entry>
+    <entry>
+      <key>Last Click</key>
+    </entry>
+    <entry>
+      <key>Opener rate (in %)</key>
+    </entry>
+    <entry>
+      <key>Evaluation type</key>
+    </entry>
+    <entry>
+      <key>remove hashtags from favorite titles</key>
+    </entry>
+    <entry>
+      <key>Valid district contacts</key>
+    </entry>
+    <entry>
+      <key>default</key>
+    </entry>
+    <entry>
+      <key>Verknuepfungen</key>
+    </entry>
+    <entry>
+      <key>Action mail</key>
+    </entry>
+    <entry>
+      <key>unsubscribe</key>
+    </entry>
+    <entry>
+      <key>Move</key>
+    </entry>
+    <entry>
+      <key>Copy Participants</key>
+    </entry>
+    <entry>
+      <key>Technical email</key>
+    </entry>
+    <entry>
+      <key>ignore</key>
+    </entry>
+    <entry>
+      <key>Click rate (in %)</key>
+    </entry>
     <entry>
       <key>Ticket return</key>
     </entry>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index c0e0fffdb529de4b8afcb3b5e95ce633e8a203b6..ec3bdcc2ffb7a9d70102288e28736633c99ac921 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -11093,6 +11093,76 @@
     <entry>
       <key>Inbox \"%0\" has been deleted.</key>
     </entry>
+    <entry>
+      <key>Move</key>
+    </entry>
+    <entry>
+      <key>Dependencies</key>
+    </entry>
+    <entry>
+      <key>ExportTemplateDependency</key>
+      <value>Export Template Dependency</value>
+    </entry>
+    <entry>
+      <key>Employee for Employee groups</key>
+    </entry>
+    <entry>
+      <key>testfilter</key>
+    </entry>
+    <entry>
+      <key>Adito Versafix</key>
+    </entry>
+    <entry>
+      <key>Charset</key>
+    </entry>
+    <entry>
+      <key>Unique click rate (in %)</key>
+    </entry>
+    <entry>
+      <key>Employees for Employee groups</key>
+    </entry>
+    <entry>
+      <key>Last Click</key>
+    </entry>
+    <entry>
+      <key>Opener rate (in %)</key>
+    </entry>
+    <entry>
+      <key>Evaluation type</key>
+    </entry>
+    <entry>
+      <key>remove hashtags from favorite titles</key>
+    </entry>
+    <entry>
+      <key>Valid district contacts</key>
+    </entry>
+    <entry>
+      <key>default</key>
+    </entry>
+    <entry>
+      <key>Verknuepfungen</key>
+    </entry>
+    <entry>
+      <key>Action mail</key>
+    </entry>
+    <entry>
+      <key>unsubscribe</key>
+    </entry>
+    <entry>
+      <key>Copy Participants</key>
+    </entry>
+    <entry>
+      <key>Technical email</key>
+    </entry>
+    <entry>
+      <key>ignore</key>
+    </entry>
+    <entry>
+      <key>Click rate (in %)</key>
+    </entry>
+    <entry>
+      <key>Dependency</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Address/Address.aod b/neonContext/Address/Address.aod
index d52b486fe764514b9aca06652f49d2b8ab1751e9..b42dae903069a6ad26e584a866ac7feb06484ba4 100644
--- a/neonContext/Address/Address.aod
+++ b/neonContext/Address/Address.aod
@@ -4,6 +4,7 @@
   <title>Addresses</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/neonContext/Address/documentation.adoc</documentation>
+  <filterView>AdressFilter_view</filterView>
   <lookupView>AddressLookup_view</lookupView>
   <entity>Address_entity</entity>
   <references>
@@ -23,5 +24,9 @@
       <name>fffe7dd0-6f32-4b4f-865b-501f48813c6d</name>
       <view>AddressOrgMultiEdit_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>ffbf7b96-30bb-497a-95bf-b2d1c53ef711</name>
+      <view>AdressFilter_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/ExportTemplate/ExportTemplate.aod b/neonContext/ExportTemplate/ExportTemplate.aod
index 40c9ea289209b23bad28b2eb33ebc1c65fd1273e..103e413ba1e0de90e5317354838d43b82ebc325e 100644
--- a/neonContext/ExportTemplate/ExportTemplate.aod
+++ b/neonContext/ExportTemplate/ExportTemplate.aod
@@ -4,10 +4,11 @@
   <title>Export Template</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <icon>NEON:EXPORT</icon>
+  <mainView>ExportTemplateMain_view</mainView>
   <filterView>ExportTemplateFilter_view</filterView>
   <editView>ExportTemplateEdit_view</editView>
   <previewView>ExportTemplatePreview_view</previewView>
-  <lookupView>ExportTemplateFilter_view</lookupView>
+  <lookupView>ExportTemplateLookup_view</lookupView>
   <entity>ExportTemplate_entity</entity>
   <references>
     <neonViewReference>
@@ -22,5 +23,17 @@
       <name>6986af0d-95a1-4e6c-8687-da99296b9c7d</name>
       <view>ExportTemplateEdit_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>611cd4fc-5403-49c6-bf96-c0784e7efdcd</name>
+      <view>ExportTemplateMain_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>56f482d6-db40-4558-a9d9-71760b511d72</name>
+      <view>ExportTemplateDetail_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>6e3d459f-b15f-4f2a-8266-8e43a6e4b965</name>
+      <view>ExportTemplateLookup_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/ExportTemplateField/ExportTemplateField.aod b/neonContext/ExportTemplateField/ExportTemplateField.aod
index 155383faabb6c58f1d4a3f0356aad7965ee7cc46..9168b0ab2c5166fbd10fb3514a6a7e8b4854faf5 100644
--- a/neonContext/ExportTemplateField/ExportTemplateField.aod
+++ b/neonContext/ExportTemplateField/ExportTemplateField.aod
@@ -3,7 +3,7 @@
   <name>ExportTemplateField</name>
   <title>Export Template Field</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <editView>ExportTemplateFieldMultiEdit_view</editView>
+  <editView>ExportTemplateFieldEdit_view</editView>
   <entity>ExportTemplateField_entity</entity>
   <references>
     <neonViewReference>
@@ -14,5 +14,13 @@
       <name>f015edb3-3dd0-431f-ac6f-3f23a350e36c</name>
       <view>ExportTemplateFieldList_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>cc2174d0-cb70-461d-b1f6-8862f3233440</name>
+      <view>ExportTemplateFieldFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>c93b35f9-ede0-4b32-8852-cd3131fc87bb</name>
+      <view>ExportTemplateFieldEdit_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/ExportTemplatePlaceOfUse/ExportTemplatePlaceOfUse.aod b/neonContext/ExportTemplatePlaceOfUse/ExportTemplatePlaceOfUse.aod
new file mode 100644
index 0000000000000000000000000000000000000000..c146ccbfcc22d5bffbdd6e9e0c412494e618ebc4
--- /dev/null
+++ b/neonContext/ExportTemplatePlaceOfUse/ExportTemplatePlaceOfUse.aod
@@ -0,0 +1,28 @@
+<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
+  <name>ExportTemplatePlaceOfUse</name>
+  <title>ExportTemplateDependency</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <editView>ExportTemplatePlaceOfUseEdit_view</editView>
+  <previewView>ExportTemplatePlaceOfUsePreview_view</previewView>
+  <lookupView>ExportTemplatePlaceOfUseFilter_view</lookupView>
+  <entity>ExportTemplatePlaceOfUse_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>ebd784ea-ffb3-4502-9ebb-3bb6f056c923</name>
+      <view>ExportTemplatePlaceOfUseEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>3439407e-24dc-414a-9035-c6ef2aae32c1</name>
+      <view>ExportTemplatePlaceOfUseFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>ed73d79d-c3ef-4c8e-8257-49e94c9a7392</name>
+      <view>ExportTemplatePlaceOfUsePreview_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>f8b7db8a-d6c1-49f9-9734-d455254b811a</name>
+      <view>ExportTemplatePlaceOfUseGeneric_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/ExportTemplatePlaceofUse/ExportTemplatePlaceofUse.aod b/neonContext/ExportTemplatePlaceofUse/ExportTemplatePlaceofUse.aod
deleted file mode 100644
index 3b3b7eeb6424a266cff34a2711b89e67d1cb17f4..0000000000000000000000000000000000000000
--- a/neonContext/ExportTemplatePlaceofUse/ExportTemplatePlaceofUse.aod
+++ /dev/null
@@ -1,17 +0,0 @@
-<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
-  <name>ExportTemplatePlaceofUse</name>
-  <title>Export Template PlaceOfUse</title>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <entity>ExportTemplatePlaceOfUse_entity</entity>
-  <references>
-    <neonViewReference>
-      <name>99e2e84f-a46a-4dd4-a312-254eb2d4c935</name>
-      <view>ExportTemplatePlaceOfUseList_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>5b1a0851-93c8-451e-b10e-ef3defa1e9f4</name>
-      <view>ExportTemplatePlaceOfUseMultiEdit_view</view>
-    </neonViewReference>
-  </references>
-</neonContext>
diff --git a/neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod b/neonView/AdressFilter_view/AdressFilter_view.aod
similarity index 57%
rename from neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod
rename to neonView/AdressFilter_view/AdressFilter_view.aod
index 9b4d6a978b1032e991dbc8cc4fbc4b483a6b76d7..7243a0108c3886d3a276f80feafd84363756550d 100644
--- a/neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod
+++ b/neonView/AdressFilter_view/AdressFilter_view.aod
@@ -1,18 +1,11 @@
 <?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
-  <name>ExportTemplatePlaceOfUseList_view</name>
+  <name>AdressFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/neonView/AdressFilter_view/documentation.adoc</documentation>
   <layout>
     <noneLayout>
       <name>layout</name>
     </noneLayout>
   </layout>
-  <children>
-    <titledListViewTemplate>
-      <name>titledList</name>
-      <titleField>PLACEOFUSE</titleField>
-      <titleFieldFullWidth v="true" />
-      <entityField>#ENTITY</entityField>
-    </titledListViewTemplate>
-  </children>
 </neonView>
diff --git a/neonView/AdressFilter_view/documentation.adoc b/neonView/AdressFilter_view/documentation.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..c8cdf10d9697de841ff9219318e1b83008637b6f
--- /dev/null
+++ b/neonView/AdressFilter_view/documentation.adoc
@@ -0,0 +1 @@
+This View is only need for selecting the filter for export and observations
\ No newline at end of file
diff --git a/neonView/ExportTemplateDetail_view/ExportTemplateDetail_view.aod b/neonView/ExportTemplateDetail_view/ExportTemplateDetail_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..4398139911202280c568d7307193faafd21d9aee
--- /dev/null
+++ b/neonView/ExportTemplateDetail_view/ExportTemplateDetail_view.aod
@@ -0,0 +1,41 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ExportTemplateDetail_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <drawerLayout>
+      <name>layout</name>
+      <layoutCaption>Details</layoutCaption>
+      <fixedDrawer v="false" />
+    </drawerLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>generic</name>
+      <entityField>#ENTITY</entityField>
+      <fields>
+        <entityFieldLink>
+          <name>7666c443-e85c-43ce-bfc0-0541c2855f93</name>
+          <entityField>DESCRIPTION</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>50d494c5-268a-4991-a399-36ccd2083b37</name>
+          <entityField>SENTENCESEPARATOR</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>4894f791-3a6a-494c-a765-10cf4341035d</name>
+          <entityField>FIELDSEPARATOR</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>63ba6855-4109-424a-87a7-215921d9d794</name>
+          <entityField>FIELDDELIMITER</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+    <neonViewReference>
+      <name>1c205be8-ecf4-4a12-93d7-d9edbf03fe3c</name>
+      <entityField>ExportTemplateMainPlaceOfUse</entityField>
+      <view>ExportTemplatePlaceOfUseGeneric_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod b/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod
index a821121f1aeb066c44b02cc36a7428411d46f07b..4d28a36f9339d95416a511f218743ced58ad5c72 100644
--- a/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod
+++ b/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod
@@ -24,17 +24,13 @@
           <entityField>DESCRIPTION</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>dcca079e-66b5-4b12-b7f7-60b53966bb43</name>
-          <entityField>ISOLANGUAGE</entityField>
+          <name>805a801e-d030-4ad9-9a9b-26e279c1d0fc</name>
+          <entityField>SENTENCESEPARATOR</entityField>
         </entityFieldLink>
         <entityFieldLink>
           <name>2d720c5a-f5a6-4689-8bc7-45e3f5e979ca</name>
           <entityField>FIELDSEPARATOR</entityField>
         </entityFieldLink>
-        <entityFieldLink>
-          <name>805a801e-d030-4ad9-9a9b-26e279c1d0fc</name>
-          <entityField>SENTENCESEPARATOR</entityField>
-        </entityFieldLink>
         <entityFieldLink>
           <name>a9041865-cadf-4ebf-8e14-ca1ae445a0cf</name>
           <entityField>FIELDDELIMITER</entityField>
@@ -42,14 +38,9 @@
       </fields>
     </genericViewTemplate>
     <neonViewReference>
-      <name>d4fc40d7-96c2-4260-b749-dd0fee481b52</name>
-      <entityField>ExportTemplateFields</entityField>
-      <view>ExportTemplateFieldMultiEdit_view</view>
-    </neonViewReference>
-    <neonViewReference>
-      <name>115345f0-5b8a-4a94-ad7d-bf5bf986da7a</name>
-      <entityField>ExportTemplateplaceOfUseCon</entityField>
-      <view>ExportTemplatePlaceOfUseMultiEdit_view</view>
+      <name>7e29d4e4-86a0-4a39-9a80-24d2b4a657a9</name>
+      <entityField>ExportTemplateMainPlaceOfUse</entityField>
+      <view>ExportTemplatePlaceOfUseEdit_view</view>
     </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/ExportTemplateFieldEdit_view/ExportTemplateFieldEdit_view.aod b/neonView/ExportTemplateFieldEdit_view/ExportTemplateFieldEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..51a62980047cd59cd591cad2e430988b364df757
--- /dev/null
+++ b/neonView/ExportTemplateFieldEdit_view/ExportTemplateFieldEdit_view.aod
@@ -0,0 +1,27 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ExportTemplateFieldEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <noneLayout>
+      <name>layout</name>
+    </noneLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>ExportTemplateFieldEditGeneric</name>
+      <editMode v="true" />
+      <hideEmptyFields v="false" />
+      <fields>
+        <entityFieldLink>
+          <name>9377c104-4a58-4739-9582-9827b0097729</name>
+          <entityField>EXPORTTEMPLATEPLACEOFUSE_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>bd6b4681-d616-4b02-a8d0-35f386640588</name>
+          <entityField>FIELD</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ExportTemplateFieldFilter_view/ExportTemplateFieldFilter_view.aod b/neonView/ExportTemplateFieldFilter_view/ExportTemplateFieldFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..8a1b6a7188932352a6810269920a7271eaad8d51
--- /dev/null
+++ b/neonView/ExportTemplateFieldFilter_view/ExportTemplateFieldFilter_view.aod
@@ -0,0 +1,32 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ExportTemplateFieldFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <groupLayout>
+      <name>layout</name>
+    </groupLayout>
+  </layout>
+  <children>
+    <treeTableViewTemplate>
+      <name>ExportTemplateFieldTreeTable</name>
+      <entityField>#ENTITY</entityField>
+      <favoriteActionGroup1>MoveActions</favoriteActionGroup1>
+      <isEditable v="false" />
+      <columns>
+        <neonTreeTableColumn>
+          <name>5fa75992-8d07-4f59-8780-defbe0472910</name>
+          <entityField>SORTING</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>5b943bef-e70a-4110-a6be-dc7bba96b4eb</name>
+          <entityField>FIELD</entityField>
+        </neonTreeTableColumn>
+        <neonTreeTableColumn>
+          <name>8dc1f2c1-6351-4b66-aafa-fa8149690e6c</name>
+          <entityField>placeOfUse</entityField>
+        </neonTreeTableColumn>
+      </columns>
+    </treeTableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod b/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod
index 28f8da32d3a8828c0f658129fdf81ae91e298b01..29c0373073449768c1d1582751f40a335445d7b5 100644
--- a/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod
+++ b/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod
@@ -12,13 +12,14 @@
   <children>
     <titledListViewTemplate>
       <name>titledList</name>
-      <titleField>FIELD</titleField>
+      <titleField>SORTING</titleField>
       <entityField>#ENTITY</entityField>
       <title>Field and Position</title>
+      <isEditable v="true" />
       <columns>
         <neonTitledListTableColumn>
           <name>a0e7e2ce-b8fc-417c-bf7e-9907b75fec59</name>
-          <entityField>SORTING</entityField>
+          <entityField>FIELD</entityField>
           <fullWidth v="false" />
         </neonTitledListTableColumn>
       </columns>
diff --git a/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod b/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod
index d568ca27848e106958e132471cd1b85b44f96f48..e7ef3b7160487c6924d3094bd2a3e29a5eb76237 100644
--- a/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod
+++ b/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod
@@ -11,6 +11,9 @@
     <genericMultipleViewTemplate>
       <name>genericMultiple</name>
       <entityField>#ENTITY</entityField>
+      <isCreatable v="false" />
+      <isDeletable v="false" />
+      <isEditable v="false" />
       <columns>
         <neonGenericMultipleTableColumn>
           <name>6e30e825-4fd4-4503-b81c-ac1a9971275d</name>
diff --git a/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod b/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod
index ecfe1548157a26a029eb9d6ca3dabd552485cadc..a33b96878aa90a70f95fb5a6146d2dcb6df3e6cf 100644
--- a/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod
+++ b/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod
@@ -18,10 +18,6 @@
           <name>76bc9ab0-8294-4df1-bdcb-6a86daef2170</name>
           <entityField>TITLE</entityField>
         </neonTableColumn>
-        <neonTableColumn>
-          <name>29cd8f19-a002-40be-b91b-9c0eab447129</name>
-          <entityField>ISOLANGUAGE</entityField>
-        </neonTableColumn>
         <neonTableColumn>
           <name>e598db0e-f2d9-43d4-97c4-f1122edf6751</name>
           <entityField>DESCRIPTION</entityField>
@@ -48,10 +44,6 @@
           <name>bf2f11c2-8cf0-40da-9692-d09bf8391679</name>
           <entityField>TITLE</entityField>
         </neonTreeTableColumn>
-        <neonTreeTableColumn>
-          <name>53869967-de33-4f9e-aa36-a11475892322</name>
-          <entityField>ISOLANGUAGE</entityField>
-        </neonTreeTableColumn>
         <neonTreeTableColumn>
           <name>6c25b35a-c655-4840-a9a7-37a7ac309e1b</name>
           <entityField>DESCRIPTION</entityField>
diff --git a/neonView/ExportTemplateLookup_view/ExportTemplateLookup_view.aod b/neonView/ExportTemplateLookup_view/ExportTemplateLookup_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..a1f2c8f4f1accd5137cb8c02a04df2b35f25a179
--- /dev/null
+++ b/neonView/ExportTemplateLookup_view/ExportTemplateLookup_view.aod
@@ -0,0 +1,28 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ExportTemplateLookup_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <groupLayout>
+      <name>layout</name>
+    </groupLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>table</name>
+      <entityField>#ENTITY</entityField>
+      <isEditable v="true" />
+      <columns>
+        <neonTableColumn>
+          <name>76bc9ab0-8294-4df1-bdcb-6a86daef2170</name>
+          <entityField>TITLE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>e598db0e-f2d9-43d4-97c4-f1122edf6751</name>
+          <entityField>DESCRIPTION</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ExportTemplateMain_view/ExportTemplateMain_view.aod b/neonView/ExportTemplateMain_view/ExportTemplateMain_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..62d38aa680dc82d8656d31cb66cc138a8510daac
--- /dev/null
+++ b/neonView/ExportTemplateMain_view/ExportTemplateMain_view.aod
@@ -0,0 +1,28 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ExportTemplateMain_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <masterSlaveLayout>
+      <name>layout</name>
+      <master>36db0218-9ae4-4ddd-8405-8ce9e874a31c</master>
+    </masterSlaveLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>36db0218-9ae4-4ddd-8405-8ce9e874a31c</name>
+      <entityField>#ENTITY</entityField>
+      <view>ExportTemplatePreview_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>34d357ec-7421-4fc6-9f66-eed0e95bc2f7</name>
+      <entityField>ExportTemplatePlacesOfUse</entityField>
+      <view>ExportTemplatePlaceOfUseFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>4a77b26f-e83c-4988-b925-ecc227a1fd09</name>
+      <entityField>ExportTemplateFields</entityField>
+      <view>ExportTemplateFieldFilter_view</view>
+    </neonViewReference>
+  </children>
+</neonView>
diff --git a/neonView/ExportTemplatePlaceOfUseEdit_view/ExportTemplatePlaceOfUseEdit_view.aod b/neonView/ExportTemplatePlaceOfUseEdit_view/ExportTemplatePlaceOfUseEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..54c54551b68d108d2428ded56de3574e53026086
--- /dev/null
+++ b/neonView/ExportTemplatePlaceOfUseEdit_view/ExportTemplatePlaceOfUseEdit_view.aod
@@ -0,0 +1,32 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ExportTemplatePlaceOfUseEdit_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <size>SMALL</size>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>ExportTemplateDependencyEditGeneric</name>
+      <editMode v="true" />
+      <hideEmptyFields v="false" />
+      <fields>
+        <entityFieldLink>
+          <name>41964c70-2475-4989-a717-caae3c470674</name>
+          <entityField>EXPORTTEMPLATEPLACEOFUSE_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>ee620cbf-5c85-4d1a-9a81-b14a55247afc</name>
+          <entityField>PLACEOFUSE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>a47f76e7-8860-414b-b78c-ea2f4d0b65d4</name>
+          <entityField>OBJECT_FILTER</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ExportTemplatePlaceOfUseFilter_view/ExportTemplatePlaceOfUseFilter_view.aod b/neonView/ExportTemplatePlaceOfUseFilter_view/ExportTemplatePlaceOfUseFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..1c4a06528e1798184325f53eb3e925f7eee43604
--- /dev/null
+++ b/neonView/ExportTemplatePlaceOfUseFilter_view/ExportTemplatePlaceOfUseFilter_view.aod
@@ -0,0 +1,25 @@
+<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ExportTemplatePlaceOfUseFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
+  <layout>
+    <groupLayout>
+      <name>layout</name>
+    </groupLayout>
+  </layout>
+  <children>
+    <treeTableViewTemplate>
+      <name>ExportTemplateDependencyFilterTreeTable</name>
+      <parentField>EXPORTTEMPLATEPLACEOFUSE_ID</parentField>
+      <showChildrenCount v="false" />
+      <isEditable v="false" />
+      <columns>
+        <neonTreeTableColumn>
+          <name>d261955e-81db-41dd-9dd3-57f07f92cfc2</name>
+          <entityField>PLACEOFUSE</entityField>
+        </neonTreeTableColumn>
+      </columns>
+    </treeTableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod b/neonView/ExportTemplatePlaceOfUseGeneric_view/ExportTemplatePlaceOfUseGeneric_view.aod
similarity index 53%
rename from neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod
rename to neonView/ExportTemplatePlaceOfUseGeneric_view/ExportTemplatePlaceOfUseGeneric_view.aod
index c32a8477c19869f6a34cce18c963b2a590aca365..443c2f5a0ff3ebfc4382af97d7178f18852e552c 100644
--- a/neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod
+++ b/neonView/ExportTemplatePlaceOfUseGeneric_view/ExportTemplatePlaceOfUseGeneric_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
-  <name>ExportTemplatePlaceOfUseMultiEdit_view</name>
+  <name>ExportTemplatePlaceOfUseGeneric_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <layout>
     <noneLayout>
@@ -8,16 +8,14 @@
     </noneLayout>
   </layout>
   <children>
-    <genericMultipleViewTemplate>
-      <name>genericmultiple</name>
-      <entityField>#ENTITY</entityField>
-      <title>Place of Use</title>
-      <columns>
-        <neonGenericMultipleTableColumn>
-          <name>faec9114-95cf-4d47-8f0e-d7d392bff188</name>
+    <genericViewTemplate>
+      <name>ExportTemplatePlaceOfUseGenericGeneric</name>
+      <fields>
+        <entityFieldLink>
+          <name>20243d2b-d773-4daf-b0cd-9ac0b762f1fc</name>
           <entityField>PLACEOFUSE</entityField>
-        </neonGenericMultipleTableColumn>
-      </columns>
-    </genericMultipleViewTemplate>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
   </children>
 </neonView>
diff --git a/neonView/ExportTemplatePlaceOfUsePreview_view/ExportTemplatePlaceOfUsePreview_view.aod b/neonView/ExportTemplatePlaceOfUsePreview_view/ExportTemplatePlaceOfUsePreview_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..08b9078db3e9ac7ad5eb50bef25606c3a36a19a6
--- /dev/null
+++ b/neonView/ExportTemplatePlaceOfUsePreview_view/ExportTemplatePlaceOfUsePreview_view.aod
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
+  <name>ExportTemplatePlaceOfUsePreview_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <headerFooterLayout>
+      <name>layout</name>
+      <header>ExportTemplateDependencyPreviewCard</header>
+    </headerFooterLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>ExportTemplateDependencyPreviewCard</name>
+      <titleField>PLACEOFUSE</titleField>
+    </cardViewTemplate>
+    <genericViewTemplate>
+      <name>ExportTemplateDependencyPreviewGeneric</name>
+      <fields>
+        <entityFieldLink>
+          <name>a5946581-6806-499b-b402-bd2c06bb01d8</name>
+          <entityField>OBJECT_FILTER</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod b/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod
index 4a0bbc8895e323d34c9c8f3a8ff7b770382651c5..04c2068b8cf4a454e73479479090dbf319318cfb 100644
--- a/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod
+++ b/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod
@@ -12,49 +12,24 @@
     <cardViewTemplate>
       <name>card</name>
       <titleField>TITLE</titleField>
-      <subtitleField>ISOLANGUAGE</subtitleField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
     <favoriteViewTemplate>
       <name>Favorites</name>
-      <objectType>EXPORTTEMPLATE_OBJECTTYPE</objectType>
+      <objectType>exportTemplateObjectType</objectType>
       <rowId>#UID</rowId>
       <entityField>#ENTITY</entityField>
       <title>favorites</title>
     </favoriteViewTemplate>
-    <genericViewTemplate>
-      <name>generic</name>
-      <showDrawer v="true" />
-      <drawerCaption>Details</drawerCaption>
-      <entityField>#ENTITY</entityField>
-      <fields>
-        <entityFieldLink>
-          <name>7666c443-e85c-43ce-bfc0-0541c2855f93</name>
-          <entityField>DESCRIPTION</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>50d494c5-268a-4991-a399-36ccd2083b37</name>
-          <entityField>SENTENCESEPARATOR</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>4894f791-3a6a-494c-a765-10cf4341035d</name>
-          <entityField>FIELDSEPARATOR</entityField>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>63ba6855-4109-424a-87a7-215921d9d794</name>
-          <entityField>FIELDDELIMITER</entityField>
-        </entityFieldLink>
-      </fields>
-    </genericViewTemplate>
     <neonViewReference>
-      <name>44ad5c03-ae3d-495f-b0ff-141a64e256e4</name>
-      <entityField>ExportTemplateFields</entityField>
-      <view>ExportTemplateFieldList_view</view>
+      <name>12c0fc60-6634-44d0-b0d8-811fa6f91280</name>
+      <entityField>#ENTITY</entityField>
+      <view>ExportTemplateDetail_view</view>
     </neonViewReference>
     <neonViewReference>
-      <name>97e15126-23f9-474d-8dec-8c9175214b92</name>
-      <entityField>ExportTemplateplaceOfUseCon</entityField>
-      <view>ExportTemplatePlaceOfUseList_view</view>
+      <name>9a555ec7-b777-4ace-821a-f849c0d87b73</name>
+      <entityField>ExportTemplateFieldsPreview</entityField>
+      <view>ExportTemplateFieldList_view</view>
     </neonViewReference>
   </children>
 </neonView>
diff --git a/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod b/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod
index 709d825158f14edab0ab418f8b1ed45b4ebcf352..c8a38d3a70239df08c4eb4f5180086a6d50d32fd 100644
--- a/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod
+++ b/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod
@@ -31,10 +31,18 @@
           <name>35ff004c-98a7-43fe-8739-3e74adb30a1a</name>
           <entityField>EXPORTTEMPLATE_ID</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>0db87299-5c4d-4365-97be-294a8a422da2</name>
+          <entityField>ISOLANGUAGE</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>afcb5cf1-7c78-4649-9178-1635226620ad</name>
           <entityField>FILENAME</entityField>
         </entityFieldLink>
+        <entityFieldLink>
+          <name>04231c92-8a5e-4b73-b9e6-b316865f443e</name>
+          <entityField>charset</entityField>
+        </entityFieldLink>
       </fields>
     </genericViewTemplate>
     <actionsViewTemplate>
diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js
index 224b5a77583e0cbc17257477e700a4e99b48ed89..40cbdbeaaeb4c3de77866c99dd5d03fed9bf4472 100644
--- a/process/Context_lib/process.js
+++ b/process/Context_lib/process.js
@@ -1,3 +1,4 @@
+import("JditoFilter_lib");
 import("system.logging");
 import("Util_lib");
 import("system.entities");
diff --git a/process/Dependency_lib/process.js b/process/Dependency_lib/process.js
index 0a46b676d5fd6268abaac897730ab76ce7e6b48d..efe81c43ef8249475a569c9732b3fe96a3149a33 100644
--- a/process/Dependency_lib/process.js
+++ b/process/Dependency_lib/process.js
@@ -1,3 +1,4 @@
+import("Util_lib");
 import("Sql_lib");
 import("system.favorite");
 
@@ -16,10 +17,17 @@ Dependency.defaultFunctionForField = function (pTableField)
     return function (pNewData, pOldData) 
     {
         let res = [];
-        if (pNewData[pTableField])
+        if (!Utils.isNullOrEmpty(pNewData) 
+            && Utils.isNotNullOrEmptyString(pNewData[pTableField]))
+            {
             res.push(pNewData[pTableField])
-        if (pOldData[pTableField] && pOldData[pTableField] != pNewData[pTableField])
+        }
+        if (!Utils.isNullOrEmpty(pOldData) 
+            && Utils.isNotNullOrEmptyString(pOldData[pTableField]) 
+            && pOldData[pTableField] != pNewData[pTableField])
+            {
             res.push(pOldData[pTableField])
+        }
         return res;
     };
 }
@@ -55,7 +63,10 @@ Dependency.defaultFunctionForFields = function (pTableFields)
  * @param {String} [pDataTable] The Tablename of the UID Field of the Entity. Is only need for the DB-Recordcontainer.
  * @param {String} [pSourceField] The Field which one contains the UID of the dependent entity in the relation rable.
  *                                  
- * @example "Person_entity": { "Activity_entity" : { "options" : { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "ACTIVITY_ID")}}
+ * @example "Person_entity": 
+{ "Activity_entity" : 
+{ "options" : 
+{ "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "ACTIVITY_ID")}}
  * 
  * @return {function}  function (pNewData, pOldData) {...} 
  */
@@ -73,6 +84,8 @@ Dependency.defaultFunctionForRelation = function (pRelationTable, pRelationField
             relationFieldValue = pNewData[pDataTable + "." + pDataField];
         }
         
+        relationFieldValue = relationFieldValue || pNewData[pDataField];
+        
         return newSelect(pRelationTable + "." + (pSourceField || "OBJECT_ROWID"))
         .from(pRelationTable)
         .groupBy(pRelationTable + "." + (pSourceField || "OBJECT_ROWID"))
@@ -123,117 +136,214 @@ Dependency.defaultFunctionForFavorites = function (pTableField, pContext)
  * <br>
  * The mapping is structured as follows: <br>
  *  
- * @example { "Entity_entity" : { "Dependency_entity": { "options" : { "option" : true}, "getUIDsfn" : function (pNewData, pOldData) {return //the IDs of the EntityField } } } }
+ * @example { "Entity_entity" : 
+{ "Dependency_entity": 
+{ "options" : 
+{ "option" : true}, "getUIDsfn" : function (pNewData, pOldData) {return //the IDs of the EntityField } } } }
  * 
  * @return {Object}
  */
 Dependency.mapping = function ()
 {
     return {
-        "Person_entity": {
-            "Activity_entity" : {
-                "options" : {
+        "BulkMail_entity" :
+        {
+            "BulkMailRecipient_entity" : 
+                {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("BULKMAILRECIPIENT", "BULKMAIL_ID", "BULKMAILID", null, "BULKMAIL", "BULKMAILRECIPIENTID"), 
+                "fieldsToLoad" : ["BULKMAILID"]
+            }
+        },
+        "BulkMailRecipient_entity" : 
+        {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("CONTACT_ID"),
+                "fieldsToLoad" : ["CONTACT_ID"]
+            }
+        },
+        "Person_entity": 
+        {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true,
                     "isOwnNotified" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "ACTIVITY_ID")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "TASK_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("CONTACT.CONTACTID", "Person")
+            },
+            "Address_entity" : 
+            {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ADDRESS", "CONTACT_ID", "CONTACTID", null, "CONTACT", "ADDRESSID"), 
+                "fieldsToLoad" : ["CONTACTID"]
             }
         },
-        "PrivatePerson_entity": {
-            "Activity_entity" : {
-                "options" : {
+        "PrivatePerson_entity": 
+        {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "PERSONID", "PrivatePerson", "PERSON", "ACTIVITY_ID")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "PERSONID", "PrivatePerson", "PERSON", "TASK_ID")
             }
         },
-        "Organisation_entity": {
-            "Activity_entity" : {
-                "options" : {
+        "Organisation_entity": 
+        {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Organisation", "CONTACT", "ACTIVITY_ID")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CONTACTID", "Organisation", "CONTACT", "TASK_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("CONTACT.CONTACTID", "Organisation")
+            }, 
+            "Address_entity" : 
+            {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("ADDRESS", "CONTACT_ID", "CONTACTID", null, "CONTACT", "ADDRESSID"), 
+                "fieldsToLoad" : ["CONTACTID"]
+            },
+            "Offer_entity" : 
+            {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("OFFER", "CONTACT_ID", "CONTACTID", null, "CONTACT", "OFFERID"), 
+                "fieldsToLoad" : ["CONTACTID"]
             }
         },
-        "Salesproject_entity": {
-            "Activity_entity" : {
-                "options" : {
+        "Salesproject_entity": 
+        {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "SALESPROJECTID", "Salesproject", "SALESPROJECT", "ACTIVITY_ID")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "SALESPROJECTID", "Salesproject", "SALESPROJECT", "TASK_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("SALESPROJECT.SALESPROJECTID", "Salesproject")
             }
         },
-        "KnowledgeManagement_entity": {
-            "Favorite_entity" : {
-                "options" : {
+        "KnowledgeManagement_entity": 
+        {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("KNOWLEDGEMANAGEMENT.KNOWLEDGEMANAGEMENTID", "KnowledgeManagement")
             }
         },
-        "ExportTemplate_entity": {
-            "Favorite_entity" : {
-                "options" : {
+        "ExportTemplate_entity": 
+        {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("EXPORTTEMPLATE.EXPORTTEMPLATEID", "ExportTemplate")
             }
         },
         
-        "Order_entity": {
-            "Activity_entity" : {
-                "options" : {
+        "Order_entity": 
+        {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "SALESORDERID", "Order", "SALESORDER", "ACTIVITY_ID")
             },
-            "Organisation_entity" : {
-                "options" : {
+            "Organisation_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
-                "getUIDsfn" : function (pRowData, pChangedData) {
+                "getUIDsfn" : function (pRowData, pChangedData) 
+                {
                     var tableField = "SALESORDER.CONTACT_ID";
                     var res = [];
                     if (pRowData[tableField])
@@ -243,481 +353,692 @@ Dependency.mapping = function ()
                     return res;
                 }
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "SALESORDERID", "Order", "SALESORDER", "TASK_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("SALESORDER.SALESORDERID", "Order")
             }
         },
-        "Contract_entity": {
-            "Activity_entity" : {
-                "options" : {
+        "Contract_entity": 
+        {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTRACTID", "Contract", "CONTRACT", "ACTIVITY_ID")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CONTRACTID", "Contract", "CONTRACT", "TASK_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("CONTRACT.CONTRACTID", "Contract")
             }
         },
-        "Product_entity": {
-            "Activity_entity" : {
-                "options" : {
+        "Product_entity": 
+        {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "PRODUCTID", "Product", "PRODUCT", "ACTIVITY_ID")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "PRODUCTID", "Product", "PRODUCT", "TASK_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("PRODUCT.PRODUCTID", "Product")
             }
         },
-        "Campaign_entity": {
-            "Activity_entity" : {
-                "options" : {
+        "Campaign_entity": 
+        {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CAMPAIGNID", "Campaign", "CAMPAIGN", "ACTIVITY_ID")
             },
-            "Task_entity" : {
-                "options" : {
+            "CampaignStep_entity" : 
+            {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("CAMPAIGNSTEP", "CAMPAIGN_ID", "CAMPAIGNID", null, "CAMPAIGN", "CAMPAIGNSTEPID"), 
+                "fieldsToLoad" : ["CAMPAIGNID"]
+            },
+            "CampaignParticipant_entity" : 
+            {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("CAMPAIGNPARTICIPANT", "CAMPAIGN_ID", "CAMPAIGNID", null, "CAMPAIGN", "CAMPAIGNPARTICIPANTID"), 
+                "fieldsToLoad" : ["CAMPAIGNID"]
+            },
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CAMPAIGNID", "Campaign", "CAMPAIGN", "TASK_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" :
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("CAMPAIGN.CAMPAIGNID", "Campaign")
             }
         },
-        "SupportTicket_entity" : {
-            "Activity_entity" : {
-                "options" : {
+        "SupportTicket_entity" : 
+        {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "TICKETID", "SupportTicket", "TICKET", "ACTIVITY_ID")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "TICKETID", "SupportTicket", "TICKET", "TASK_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("TASK.TASKID", "SupportTicket")
             }
         },
-        "Activity_entity" : {
-            "Person_entity" : {
-                "options" : {
+        "CampaignParticipant_entity" : 
+        {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                },
+                "getUIDsfn" : Dependency.defaultFunctionForField("PERSON_CONTACT_ID"),
+                "fieldsToLoad" : ["PERSON_CONTACT_ID"]
+            }
+        },
+        "Activity_entity" : 
+        {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true,
                     "isOwnNotified" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Person", "ACTIVITY")
             },
-            "Organisation_entity" : {
-                "options" : {
+            "Organisation_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Organisation", "ACTIVITY")
             },
-            "Salesproject_entity" : {
-                "options" : {
+            "Salesproject_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Salesproject", "ACTIVITY")
             },
-            "Offer_entity" : {
-                "options" : {
+            "Offer_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Offer", "ACTIVITY")
             },
-            "Order_entity" : {
-                "options" : {
+            "Order_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Order", "ACTIVITY")
             },
-            "Contract_entity" : {
-                "options" : {
+            "Contract_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Contract", "ACTIVITY")
             },
-            "Product_entity" : {
-                "options" : {
+            "Product_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Product", "ACTIVITY")
             },
-            "Campaign_entity" : {
-                "options" : {
+            "Campaign_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Campaign", "ACTIVITY")
             }
         },
-        "Address_entity": {
-            "Organisation_entity" : {
-                "options" : {
+        "Address_entity": 
+        {
+            "Organisation_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("ADDRESS.CONTACT_ID")
             },
-            "Person_entity" : {
-                "options" : {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("ADDRESS.CONTACT_ID")
             }
         },
-        "AttributeRelation_entity" : {
-            "Person_entity" : {
-                "options" : {
+        "AttributeRelation_entity" : 
+        {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Person")
             },
-            "Organisation_entity" : {
-                "options" : {
+            "Organisation_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Organisation")
             },
-            "Activity_entity" : {
-                "options" : {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Activity")
             },
-            "Salesproject_entity" : { 
-                "options" : {
+            "Salesproject_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Salesproject")
             },
-            "Product_entity" : { 
-                "options" : {
+            "Product_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Product")
             },
-            "Employee_entity" : { 
-                "options" : {
+            "Employee_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Employee")
             },
-            "SupportTicket_entity" : { 
-                "options" : {
+            "SupportTicket_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "SupportTicket")
             }
         },
-        "Communication_entity": {
-            "Person_entity" : {
-                "options" : {
+        "Communication_entity": 
+        {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("COMMUNICATION.OBJECT_ROWID")
             },
-            "Organisation_entity" : {
-                "options" : {
+            "Organisation_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("COMMUNICATION.OBJECT_ROWID")
             }
         },
-        "CommRestriction_Entity" : {
-            "Person_entity" : {
-                "options" : {
+        "CommRestriction_Entity" : 
+        {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("COMMRESTRICTION.CONTACT_ID")
             },
-            "Organisation_entity" : {
-                "options" : {
+            "Organisation_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("COMMRESTRICTION.CONTACT_ID")
             }
         },
-        "Contact_entity" : {
-            "Person_entity" : {
-                "options" : {
+        "Contact_entity" : 
+        {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("CONTACT.CONTACTID")
             }
         },
-        "Document_entity" : {
-            "Person_entity" : {
-                "options" : {
+        "Document_entity" : 
+        {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Organisation_entity" : {
-                "options" : {
+            "Organisation_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Activity_entity" : {
-                "options" : {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Salesproject_entity" : {
-                "options" : {
+            "Salesproject_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Offer_entity" : {
-                "options" : {
+            "Offer_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Order_entity" : {
-                "options" : {
+            "Order_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Contract_entity" : {
-                "options" : {
+            "Contract_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Product_entity" : {
-                "options" : {
+            "Product_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Employee_entity" : {
-                "options" : {
+            "Employee_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "SupportTicket_entity" : {
-                "options" : {
+            "SupportTicket_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             },
-            "Campaign_entity" : {
-                "options" : {
+            "Campaign_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value")
             }
         },
-        "ObjectTree_entity": {
-            "Person_entity" : {
-                "options" : {
+        "ObjectTree_entity": 
+        {
+            "Person_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForFields(["PARENT_ID.value", "TARGET_ID.value"])
             },
-            "Organisation_entity" : {
-                "options" : {
+            "Organisation_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForFields(["PARENT_ID.value", "TARGET_ID.value"])
             }
         },
-        "Member_entity" : {
-            "Campaign_entity" : { 
-                "options" : {
+        "Member_entity" : 
+        {
+            "Campaign_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("OBJECTMEMBER.OBJECT_ROWID") // Evtl einschränken auf Type
             },
-            "Salesproject_entity" : { 
-                "options" : {
+            "Salesproject_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("OBJECTMEMBER.OBJECT_ROWID") // Evtl einschränken auf Type
             }
         },
-        "SalesprojectSource_entity" : {
-            "Salesproject_entity" : { 
-                "options" : {
+        "SalesprojectSource_entity" : 
+        {
+            "Salesproject_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("SALESPROJECT_TOUCHPOINT.SALESPROJECT_ID")
             }
         }, 
-        "Forecast_entity" : {
-            "Salesproject_entity" : { 
-                "options" : {
+        "Forecast_entity" : 
+        {
+            "Salesproject_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("FORECAST.OBJECT_ROWID")  // Evtl einschränken auf Type
             }
         },
-        "Offer_entity" : {
-            "Salesproject_entity" : { 
-                "options" : {
+        "Offer_entity" : 
+        {
+            "Salesproject_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("OFFER.OBJECT_ROWID")  // Evtl einschränken auf Type
             },
-            "Activity_entity" : {
-                "options" : {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "OFFERID", "Offer", "OFFER", "ACTIVITY_ID")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "OFFERID", "Offer", "OFFER", "TASK_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("OFFER.OFFERID", "Offer")
+            },
+            "Offeritem_entity" : 
+            {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("OFFERITEM", "OFFER_ID", "OFFERID", null, "OFFER", "OFFERITEMID"), 
+                "fieldsToLoad" : ["OFFERID"]
             }
         },
-        "DocumentTemplate_entity": {
-            "Favorite_entity" : {
-                "options" : {
+        "DocumentTemplate_entity": 
+        {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID", "DocumentTemplate")
             }
         },
-        "WorkflowDefinition_entity": {
-            "Favorite_entity" : {
-                "options" : {
+        "WorkflowDefinition_entity": 
+        {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("UID.value", "WorkflowDefinition")
             }
         },
-        "Competition_entity" : {
-            "Salesproject_entity" : { 
-                "options" : {
+        "Competition_entity" : 
+        {
+            "Salesproject_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("COMPETITION.OBJECT_ROWID")  // Evtl einschränken auf Type
             }
         },
-        "Offeritem_entity" : {
-            "Offer_entity" : { 
-                "options" : {
+        "Offeritem_entity" : 
+        {
+            "Offer_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("OFFERITEM.OFFER_ID")
             }
         },
-        "Orderitem_entity" : {
-            "Order_entity" : { 
-                "options" : {
+        "Orderitem_entity" : 
+        {
+            "Order_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("SALESORDERITEM.SALESORDER_ID")
             }
         },
-        "Productprice_entity" : {
-            "Product_entity" : { 
-                "options" : {
+        "Productprice_entity" : 
+        {
+            "Product_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("PRODUCTPRICE.PRODUCT_ID")
             },
-            "Favorite_entity" : {
-                "options" : {
+            "Favorite_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 }, 
                 "getUIDsfn" : Dependency.defaultFunctionForFavorites("PRODUCTPRICE.PRODUCTPRICEID", "Productprice")
             }
         },
-        "Prod2prod_entity" : {
-            "Product_entity" : { 
-                "options" : {
+        "Prod2prod_entity" : 
+        {
+            "Product_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("SOURCE_ID.value")
             }
         },
-        "CampaignCost_entity" : {
-            "Campaign_entity" : { 
-                "options" : {
+        "CampaignCost_entity" : 
+        {
+            "Campaign_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("CAMPAIGNCOST.CAMPAIGN_ID")
             }
         },
-        "CampaignStep_entity" : {
-            "Campaign_entity" : { 
-                "options" : {
+        "CampaignStep_entity" : 
+        {
+            "Campaign_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("CAMPAIGNSTEP.CAMPAIGN_ID")
             },
-            "Activity_entity" : {
-                "options" : {
+            "Activity_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CAMPAIGNSTEPID", "CampaignStep", "CAMPAIGNSTEP")
             },
-            "Task_entity" : {
-                "options" : {
+            "Task_entity" : 
+            {
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CAMPAIGNSTEPID", "CampaignStep", "CAMPAIGNSTEP")
             }
         },
-        "Lead_entity" : {
-            "Leadimport_entity" : { 
-                "options" : {
+        "Lead_entity" : 
+        {
+            "Leadimport_entity" : 
+            { 
+                "options" : 
+                {
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForField("LEADS.LEADIMPORT_ID")
diff --git a/process/ExportTemplate_lib/process.js b/process/ExportTemplate_lib/process.js
index 07ed68ab7557f351d24df31578bb97187cc7544d..0dc59363f125d7bd5cc256acfefe337008c86b34 100644
--- a/process/ExportTemplate_lib/process.js
+++ b/process/ExportTemplate_lib/process.js
@@ -1,3 +1,7 @@
+import("system.project");
+import("Dependency_lib");
+import("Context_lib");
+import("system.entities");
 import("system.neon");
 import("system.vars");
 import("Address_lib");
@@ -9,6 +13,7 @@ import("system.datetime");
 import("system.text");
 import("system.translate");
 import("system.util");
+import("Util_lib");
 
 /**
  * Methods used for ExportTemplates and exporting Fieldvalues using those templates
@@ -23,70 +28,293 @@ function ExportTemplateUtils() {}
  * 
  * @param {String} pExportTemplateId export template id
  * @param {Array} pSelection Contacts/Organisations you want to export (either via selecion by filterconditions)
- * @param {String} pComingFrom source from where you started (e.g. "PERSON", "ORGANISATION" )
  * @param {String} pFilename (opt.) name of the exported file (if left blank -> "templateTitle_dd.MM.yyyy.HH:mm:ss")
+ * @param {String} pCharset the charset of the exported base64-encoded CSV
  * 
  * @return {Object} {content:   base64-encoded CSV; 
  *                   filename:  filename}
- * 
  */
-ExportTemplateUtils.buildExport = function (pExportTemplateId, pSelection, pComingFrom, pFilename)
+ExportTemplateUtils.buildExport = function (pExportTemplateId, pSelection, pFilename, pCharset)
 {
     //Gets all the relevant data from the chosen template
-    var templateId = pExportTemplateId;
-    var templateData = ExportTemplateUtils.getTemplateData(templateId);
+    var templateData = ExportTemplateUtils.getTemplateData(pExportTemplateId);
     var templateTitle = templateData[0];
     var language = templateData[1];
     var sentenceSeparator = ExportTemplateUtils.getSentenceSeparator(templateData[2]);
     var fieldSeparator = ExportTemplateUtils.getFieldSeparator(templateData[3]);
     var fieldDeLimiter = ExportTemplateUtils.getFieldDeLimiter(templateData[4]);
     var filename = pFilename;
-    var fields = ExportTemplateUtils.getTemplateFields(templateId);
-    var comingFrom = pComingFrom;
     var selection = pSelection;
-    var filteredIdcondition;
     var csvTable;
-    var fieldtitles = [];
    
     if(!selection.includes("{", 0))         //checks if data is selected
     {
         selection = [];
         selection = JSON.parse(pSelection);      //makes an array of the ContactIds/OrganisationIds of the selected data
-     }
+    }
      
-    if(filename == null || filename == undefined || filename.trim() == "") //if the user didn't choose a filename => generate one automatically
+    if(Utils.isNullOrEmptyString(filename))//if the user didn't choose a filename => generate one automatically
+    {
         filename = ExportTemplateUtils.getExportFileName(templateTitle, "UTC");
-   filename += ".csv";
-   
-    //selects all the placeholders needed in the correct order
-    var placeholders = PlaceholderUtils.getPlaceholders(language); //selects all placeholders
-    var affectedPlaceholders = [];
-    for (let i = 0; i < fields.length; i++) {
-            var placeholderField = placeholders.find(function(placeholder){
-                return placeholder.getFormattedName() == fields[i];
-            })
-            if(placeholderField)
-                affectedPlaceholders.push(placeholderField);
     }
+        
+    filename += ".csv";
+   
+    let data = new ExportTemplateData(pExportTemplateId).getMainExportData(selection);
+    
+    csvTable = text.toCSV(data, sentenceSeparator, fieldSeparator, fieldDeLimiter);     //generates the CSV with the correct separators
+    csvTable = util.encodeBase64String(csvTable, pCharset || "UTF-8");                       //converts to Base64 (for neon.Download)
+    
+    return {
+        content : csvTable, 
+        filename : filename,
+        title : templateTitle
+    };
+}
+
+/**
+ * This class takes over the creation of the data for the export.
+ * 
+ * @param {String} pExportTemplateId export template id
+ */
+function ExportTemplateData(pExportTemplateId) 
+{
+    this.exportTemplateId = pExportTemplateId;
+    
+    this.placesOfUse = 
+    newSelect([
+        "EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSEID", 
+        "EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID",
+        "EXPORTTEMPLATEPLACEOFUSE.OBJECT_FILTER",
+        "EXPORTTEMPLATEPLACEOFUSE.PLACEOFUSE"
+        ])
+    .from("EXPORTTEMPLATEPLACEOFUSE")
+    .where("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID", this.exportTemplateId)
+    .orderBy("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID DESC")
+    .table();
+        
+    this.placesOfUseFields = {
+        "EXPORTTEMPLATEPLACEOFUSEID" : 0,
+        "EXPORTTEMPLATEPLACEOFUSE_ID" : 1,
+        "OBJECT_FILTER" : 2,
+        "PLACEOFUSE" : 3
+    };
+    
+    let fields = newSelect([
+        "EXPORTTEMPLATEFIELD.EXPORTTEMPLATEPLACEOFUSE_ID", 
+        "EXPORTTEMPLATEFIELD.FIELD",
+        "EXPORTTEMPLATEPLACEOFUSE.PLACEOFUSE"
+        ])
+    .from("EXPORTTEMPLATEFIELD")
+    .rightJoin("EXPORTTEMPLATEPLACEOFUSE", 
+        newWhere("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID", this.exportTemplateId)
+        .and("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSEID = EXPORTTEMPLATEFIELD.EXPORTTEMPLATEPLACEOFUSE_ID"))
+    .where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", this.exportTemplateId)
+    .orderBy("EXPORTTEMPLATEFIELD.SORTING")
+    .table();
+    
+    let fieldsObjectFields = {};
+    fieldsObjectFields.EXPORTTEMPLATEPLACEOFUSE_ID = 0;
+    fieldsObjectFields.FIELD = 1;
+    fieldsObjectFields.PLACEOFUSE = 2;
+    
+    this.fields = {};
+    this.exportData = [];
+    let exportHeader = [];
+    
+    fields.forEach(function (pField, pIndex) 
+    {
+        
+        if (Utils.isNullOrEmpty(this.fields[pField[fieldsObjectFields.EXPORTTEMPLATEPLACEOFUSE_ID]]))
+        {
+            this.fields[pField[fieldsObjectFields.EXPORTTEMPLATEPLACEOFUSE_ID]] = {};
+        }
+            
+        let field = this.fields[pField[fieldsObjectFields.EXPORTTEMPLATEPLACEOFUSE_ID]];
+            
+        field[pField[fieldsObjectFields.FIELD]] = pIndex;
+        // Override the value with the displayValue if exists
+        field[pField[fieldsObjectFields.FIELD]+ ".displayValue"] = pIndex;
+        
+        let entity = ContextUtils.getEntity(pField[fieldsObjectFields.PLACEOFUSE]);
+        let fields = project.getEntityStructure(entity).fields;
+        
+        exportHeader.push(fields[pField[fieldsObjectFields.FIELD]].title);
+        
+    }, this);
+    
+    this.exportData.push(exportHeader);
+    // starts at one, because the headers of the columns were inserted before the content.
+    this.exportIndex = 1;
+}
+
+/**
+ * Starts the recursion with the main place of use.
+ * 
+ * @param {String} pSelection stringified filter or a array of ids
+ */
+ExportTemplateData.prototype.getMainExportData = function (pSelection) 
+{
+    this.placesOfUse.forEach(function (pPlaceOfUse, pIndex, pPlacesOfUse) {
+        // get the MainPlaceOfUse to start the recrusion
+        if (Utils.isNullOrEmptyString(pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSE_ID]))
+        {
+            let placeOfUse = pPlacesOfUse.splice(pIndex, 1)[0];
+            placeOfUse[this.placesOfUseFields.OBJECT_FILTER] = JSON.stringify(pSelection);
+            this.getExportData(placeOfUse, [], 0);
+            return; // Currently there can only be one MainPlaceOfUse.
+        }
+    }, this);
     
+    return this.exportData;
+}
 
-    var replaced = getAddressesData(selection, affectedPlaceholders, null, null);   //replaces all the placeholders with values 
-    replaced =  replaced.slice(1,replaced.length);                      //needed in order to remove the weird first line of the Array
+/**
+ * Get and process recursive data.
+ * 
+ * @param {String} pPlaceOfUse the place of use object with the filter object
+ * @param {Number} pParentCurrentIndex the index of the parrent place of use
+ * @param {Array} pIDs the ids to filter on
+ */
+ExportTemplateData.prototype.getExportData = function (pPlaceOfUse, pIDs, pParentCurrentIndex) 
+{
+    let currentIndex = pParentCurrentIndex;
+    var placeOfUseEntity = ContextUtils.getEntity(pPlaceOfUse[this.placesOfUseFields.PLACEOFUSE]);
+    
     
-    for (let i = 0; i < affectedPlaceholders.length; i++) 
+    if (Utils.isNullOrEmpty(this.fields[pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSEID]]))
     {
-        fieldtitles[i] = affectedPlaceholders[i].title;                 //gets the translations for the Labelling
+        return 0;
     }
+    // get only the fields of the current PlaceOfUse
+    let placeOfUseFields = Object.keys(this.fields[pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSEID]]);
+    
+    let dependentFieldsToLoad = [];
+    let dependentPlaceOfUse = [];
+    
+    this.placesOfUse.forEach(function (pPotentialChildPlaceOfUse, pIndex, pPlacesOfUse) 
+    {
+        // if pPotentialChildPlaceOfUse is a child of pPlaceOfUse
+        if (pPotentialChildPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSE_ID] === pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSEID])
+        {
+            // Remove PlaceOfUse of this.placesOfUse
+            //let placeOfUse = pPlacesOfUse.splice(pIndex, 1)[0];
+            dependentPlaceOfUse.push(pPotentialChildPlaceOfUse);
+            
+            let dependency = ContextUtils.getEntity(pPotentialChildPlaceOfUse[this.placesOfUseFields.PLACEOFUSE]);
+            dependentFieldsToLoad = dependentFieldsToLoad.concat(Dependency.mapping()[placeOfUseEntity][dependency]["fieldsToLoad"]); // Dependency.mapping()[placeOfUseEntity][dependency]["fieldsToLoad"][0] == "PERSON_CONTACT_ID"
+        }
+    }, this);
+                
+    var data = this.getFilterData(pPlaceOfUse, placeOfUseEntity, placeOfUseFields, dependentFieldsToLoad, pIDs);
+    
+    let placeOfUseId = pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSEID];
+    var maxCount = 0;
+    let sumcount = 0;
+    data.forEach(function (pRow, pIndex) 
+    {
+        maxCount = 1;
+        dependentPlaceOfUse.forEach(function (pDependentPlaceOfUse) 
+        {
+            let dependency = ContextUtils.getEntity(pDependentPlaceOfUse[this.placesOfUseFields.PLACEOFUSE]);
+            let dependentIds = Dependency.mapping()[placeOfUseEntity][dependency].getUIDsfn(pRow);
+            
+            maxCount = Math.max(this.getExportData(pDependentPlaceOfUse, dependentIds, currentIndex), maxCount);
+        }, this);
+        
+        if (!Utils.toBoolean(dependentPlaceOfUse.length))
+        {
+            // Last Level
+            this.setExportData(pRow, maxCount, placeOfUseId, currentIndex + pIndex);
+        }
+        else
+        {
+            // After all Levels are finish
+            this.setExportData(pRow, maxCount, placeOfUseId, currentIndex);
+            currentIndex += maxCount;
+            if (Utils.isNullOrEmptyString(pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSE_ID]))
+            {
+                currentIndex = pParentCurrentIndex;
+                this.exportIndex += maxCount;
+            }
+        }
+        sumcount += maxCount;
+        
+    }, this);
+    
+    return Math.max(sumcount, maxCount);
+}
 
-    replaced.unshift(fieldtitles); //adds the translated Titles at the top of the table (columnHeadlines basically)
-   
-    csvTable = text.toCSV(replaced, sentenceSeparator, fieldSeparator, fieldDeLimiter);     //generates the CSV with the correct separators
-    csvTable = util.encodeBase64String(csvTable);                       //converts to Base64 (for neon.Download)
+
+/**
+ * Set the overtaken data into the export array.
+ * 
+ * @param {Object} pPlaceOfUse the place of use object with the filter object
+ * @param {String} pPlaceOfUseEntity the entity through which the data is loaded
+ * @param {Array} pPlaceOfUseFileds the place of use id of the current place of use
+ * @param {Array} pDependentFieldsToLoad fields of the dependencies to get the conection between the enties
+ * @param {Array} pIDs the ids to filter on
+ */
+ExportTemplateData.prototype.getFilterData = function (pPlaceOfUse, pPlaceOfUseEntity, pPlaceOfUseFileds, pDependentFieldsToLoad, pIDs)
+{
+    let fields = pPlaceOfUseFileds.concat(pDependentFieldsToLoad);
+    // remove duplicate fields
+    fields = Array.from(new Set(fields));
+    var filter = JSON.parse(pPlaceOfUse[this.placesOfUseFields.OBJECT_FILTER]);
+    var config = entities.createConfigForLoadingRows()
+    .entity(pPlaceOfUseEntity)
+    .fields(fields);
     
-    return {content : csvTable, 
-            filename : filename
-    };
-};
+    if (Utils.isObject(filter) && Array.isArray(filter))
+    {
+        pIDs = pIDs.concat(filter);
+    }
+    else
+    {
+        config.filter(JSON.stringify(filter.filter));
+    }
+    
+    config.uids(pIDs);
+    
+    let rows = [];
+    
+    if (pIDs.length > 0)
+    {
+        rows = entities.getRows(config);
+    }
+    
+    return rows;
+}
+
+/**
+ * Set the overtaken data into the export array.
+ * 
+ * @param {Array} pDataRow the data, which will be inserted
+ * @param {Number} pMaxCount the number of repeated data insertion 
+ * @param {String} pPlaceOfUseId the place of use id of the current place of use
+ * @param {Number} pIndex the index of the current row
+ */
+ExportTemplateData.prototype.setExportData = function (pDataRow, pMaxCount, pPlaceOfUseId, pIndex)
+{
+    let fieldsPlaceOfUse = this.fields[pPlaceOfUseId];
+    for (let i = 0; i < pMaxCount; i++)
+    {
+        let index = this.exportIndex + i + pIndex;
+        if (Utils.isNullOrEmpty(this.exportData[index]))
+        {
+            // Create an empty array the length of the header with empty strings
+            this.exportData[index] = new Array(this.exportData[0].length).fill("");
+        }
+        
+        for (let field in fieldsPlaceOfUse)
+        {
+            if (!Utils.isNullOrEmptyString(pDataRow[field])) 
+            {
+                this.exportData[index][fieldsPlaceOfUse[field]] = pDataRow[field];
+            }
+        }
+    }
+}
 
 /**
  * Gets an Array of all the Fields of a ExportTemplate using it's unique exportTemplateId.
@@ -99,10 +327,10 @@ ExportTemplateUtils.buildExport = function (pExportTemplateId, pSelection, pComi
 ExportTemplateUtils.getTemplateFields = function (pExportTemplateId)
 {
     return newSelect("EXPORTTEMPLATEFIELD.FIELD")
-                        .from("EXPORTTEMPLATEFIELD")
-                        .where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", pExportTemplateId)
-                        .orderBy("EXPORTTEMPLATEFIELD.SORTING")
-                        .arrayColumn();
+    .from("EXPORTTEMPLATEFIELD")
+    .where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", pExportTemplateId)
+    .orderBy("EXPORTTEMPLATEFIELD.SORTING")
+    .arrayColumn();
 };
 
 /**
@@ -116,7 +344,10 @@ ExportTemplateUtils.getTemplateFields = function (pExportTemplateId)
 ExportTemplateUtils.getExportFileName = function (pTemplateTitle, pTimeZone)
 {
     if(pTimeZone == null || pTimeZone == undefined)
+    {
         pTimeZone = "UTC";
+    }
+        
     var exportFileName = pTemplateTitle + "_" + datetime.toDate(datetime.date(), "dd.MM.yyyy.HH:mm:ss", pTimeZone);
     
     return exportFileName;
@@ -132,10 +363,10 @@ ExportTemplateUtils.getExportFileName = function (pTemplateTitle, pTimeZone)
 ExportTemplateUtils.getTemplateData = function (pExportTemplateId)
 {
     var data = newSelect(["EXPORTTEMPLATE.TITLE", "EXPORTTEMPLATE.ISOLANGUAGE", "EXPORTTEMPLATE.SENTENCESEPARATOR", 
-                            "EXPORTTEMPLATE.FIELDSEPARATOR", "EXPORTTEMPLATE.FIELDDELIMITER"])
-                        .from("EXPORTTEMPLATE")
-                        .where("EXPORTTEMPLATE.EXPORTTEMPLATEID", pExportTemplateId)
-                        .arrayRow();
+        "EXPORTTEMPLATE.FIELDSEPARATOR", "EXPORTTEMPLATE.FIELDDELIMITER"])
+    .from("EXPORTTEMPLATE")
+    .where("EXPORTTEMPLATE.EXPORTTEMPLATEID", pExportTemplateId)
+    .arrayRow();
     data[1] = LanguageKeywordUtils.Iso2FromIso3(data[1]) //needed to get the language in the right format
     return data;
 };
@@ -152,10 +383,16 @@ ExportTemplateUtils.getTemplateData = function (pExportTemplateId)
  */
 ExportTemplateUtils.getSentenceSeparator = function (pSentenceSeparator)
 {
-   if(pSentenceSeparator == "carriage return and line feed")
-       return "\r\n";
-   else
-       return pSentenceSeparator;
+    if(pSentenceSeparator == "carriage return and line feed")
+    {
+        return "\r\n";
+    }
+        
+    else
+    {
+        return pSentenceSeparator;
+    }
+       
 };
 
 /**
@@ -170,14 +407,20 @@ ExportTemplateUtils.getSentenceSeparator = function (pSentenceSeparator)
  */
 ExportTemplateUtils.getFieldSeparator = function (pFieldSeparator)
 {
-   if(pFieldSeparator == "tabulator")
-       return "\t";
-   else if(pFieldSeparator == "comma")
+    if(pFieldSeparator == "tabulator")
+    {
+        return "\t";
+    }
+    else if(pFieldSeparator == "comma")
+    {
         return ",";
-   else if(pFieldSeparator == "semicolon")
+    }
+    else if(pFieldSeparator == "semicolon")
+    {
         return ";";
-   else
-       return pFieldSeparator;
+    }
+    
+    return pFieldSeparator;
 };
 
 /**
@@ -192,10 +435,12 @@ ExportTemplateUtils.getFieldSeparator = function (pFieldSeparator)
  */
 ExportTemplateUtils.getFieldDeLimiter = function (pFieldDeLimiter)
 {
-   if(pFieldDeLimiter == "quotation mark")
-       return "\"";
-   else
-       return pFieldDeLimiter;
+    if(pFieldDeLimiter == "quotation mark")
+    {
+        return "\"";
+    }
+    
+    return pFieldDeLimiter;
 };
 
 /**
@@ -208,39 +453,52 @@ ExportTemplateUtils.getFieldDeLimiter = function (pFieldDeLimiter)
 ExportTemplateUtils.getExportTemplateTitle = function (pExportTemplateId)
 {
     return newSelect("EXPORTTEMPLATE.TITLE")
-                                .from("EXPORTTEMPLATE")
-                                .where("EXPORTTEMPLATE.EXPORTTEMPLATEID", pExportTemplateId)
-                                .cell(true);
+    .from("EXPORTTEMPLATE")
+    .where("EXPORTTEMPLATE.EXPORTTEMPLATEID", pExportTemplateId)
+    .cell(true);
 };
 
 /**
- * Export contacts or organistaions by contactIds.<br>
+ * Export contacts or organistaions by selection (filter or a array of ids).<br>
  * 
- * @param {String} pRowIds              <p>
- *                                      The contact ids as JSON array.<br>
+ * @param {String} pSelection           <p>
+ *                                      filter or a array of ids
  * @param {String} pSourceTableName     <p>
  *                                      The source table.<br>
  */
-ExportTemplateUtils.addParticipantsByRowIds = function (pRowIds, pSourceTableName)
+ExportTemplateUtils.addParticipants = function (pSelection, pSourceTableName)
 {
-        var params = {
-                "selectedData_param" : pRowIds,
-                "comingFrom_param" : pSourceTableName}
+    var params = {
+        "selectedData_param" : pSelection,
+        "comingFrom_param" : pSourceTableName
+    }
     neon.openContext("ExportTemplateSelection", "ExportTemplateSelectionEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
-};
+}
 
 /**
- * Export contacts or organistaions by condition (filter).<br>
+ * Returns the exculed fields of the export entity. These fields cannot be exported.
  * 
- * @param {String} pCondition           <p>
- *                                      Contact ids.
- * @param {String} pSourceTableName     <p>
- *                                      The source table.<br>
+ * @return {Object} {"Entity_entity" : ["exculdedFieldName",...], ...}
  */
-ExportTemplateUtils.addParticipantsByCondition = function (pCondition, pSourceTableName)
+ExportTemplateUtils.excludedFields = function ()
 {
-    var params = {
-                "selectedData_param" : pCondition,
-                "comingFrom_param" : pSourceTableName}
-    neon.openContext("ExportTemplateSelection", "ExportTemplateSelectionEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
-};
\ No newline at end of file
+    return {
+        "Offer_entity":["OFFER_ID"],
+        "Offeritem_entity":["ASSIGNEDTO", "ITEMSORT", "OFFER_ID"]
+    };
+}
+
+/**
+ * Thees are the Entities which can be selected in the ExportTemplatePlaceOfUseFilter_view.
+ */
+ExportTemplateUtils.exportableEntities = function () 
+{
+    return [
+    "BulkMail_entity",
+    "Campaign_entity",
+    "Offer_entity",
+    "Organisation_entity",
+    "Person_entity",
+    "Salesproject_entity"
+    ];
+}
\ No newline at end of file
diff --git a/process/JditoFilter_lib/process.js b/process/JditoFilter_lib/process.js
index 3369e0cfd4840368d4dc47adaa9380ab9ae90214..29b6ee9e6a0d8cd49e647ca37e00d095929ba85a 100644
--- a/process/JditoFilter_lib/process.js
+++ b/process/JditoFilter_lib/process.js
@@ -1,3 +1,4 @@
+import("Context_lib");
 import("system.vars");
 import("system.tools");
 import("system.logging");
@@ -512,6 +513,44 @@ JditoFilterUtils.getEmptyFilter = function (pEntity)
     return JSON.stringify(emptyFilter);
 }
 
+/**
+ * Returns an object with the entity and filter as string. 
+ * If filter or entity are not set, they are set to an empty filter and the current entity.
+ * 
+ * @param {String} [pEntity]
+ * @param {Object} [pFilterObj]
+ * 
+ * @return {String} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"}
+ */
+JditoFilterUtils.getEntityFilter = function (pEntity, pFilterObj) 
+{
+    if (!pEntity)
+        pEntity = ContextUtils.getEntity(ContextUtils.getCurrentContextId());
+    if (!pFilterObj)
+    {
+        return JditoFilterUtils.getEmptyFilter(pEntity);
+    }
+    
+    return JSON.stringify({
+        "filter":pFilterObj,
+        "entity":pEntity
+    });
+}
+
+/**
+ * Returns an object with the entity and filter as string. 
+ * If filter or context are not set, they are set to an empty filter and the context of the current entity.
+ * 
+ * @param {String} [pContext]
+ * @param {Object} [pFilter]
+ * 
+ * @return {String} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"}
+ */
+JditoFilterUtils.getContextFilter = function (pContext, pFilter)
+{
+    return JditoFilterUtils.getEntityFilter(ContextUtils.getEntity(pContext), pFilter);
+}
+
 
 /**
  * Object for translating a filter object to a sql condition.
diff --git a/process/Observation_lib/process.js b/process/Observation_lib/process.js
index 7037b65adf630093f6efb2d95493cdc30aa1fffc..b90768b91d3fc9479af4ebda50b97d225408bb96 100644
--- a/process/Observation_lib/process.js
+++ b/process/Observation_lib/process.js
@@ -1,3 +1,4 @@
+import("JditoFilter_lib");
 import("Keyword_lib");
 import("Util_lib");
 import("system.neon");
@@ -803,7 +804,7 @@ Observation.insertAction = function ()
     } 
     else 
     {
-        let filter = Observation.getContextFilter(contextId,vars.get("$sys.filter").filter);
+        let filter = JditoFilterUtils.getContextFilter(contextId,vars.get("$sys.filter").filter);
         
         params["ObjectFilter_param"] = filter;
     }
@@ -824,11 +825,14 @@ Observation.cancelAction = function ()
     let cond = newWhere("OBSERVATION.OBJECT_TYPE", contextID)
     .and("OBSERVATION.OBSERVER", observer);
 
-    if (selectedUIDs.length){
+    if (selectedUIDs.length)
+    {
         cond.and("OBSERVATION.OBJECT_ID", selectedUIDs, SqlBuilder.IN())
         .deleteData(true, "OBSERVATION");
-    } else {
-        let filter = Observation.getContextFilter(contextID,vars.get("$sys.filter").filter);
+    } 
+    else 
+    {
+        let filter = JditoFilterUtils.getContextFilter(contextID,vars.get("$sys.filter").filter);
         
         cond.and("OBSERVATION.OBJECT_FILTER", filter, SqlBuilder.LIKE())
         .deleteData(true, "OBSERVATION");
@@ -930,7 +934,7 @@ Observation.countObservations = function (pSelectedUIDs)
     if (pSelectedUIDs && pSelectedUIDs.length){
         rowCount.and("OBSERVATION.OBJECT_ID", pSelectedUIDs, SqlBuilder.IN());
     } else {
-        rowCount.and("OBSERVATION.OBJECT_FILTER", Observation.getContextFilter(contextID,vars.get("$sys.filter").filter), SqlBuilder.LIKE());
+        rowCount.and("OBSERVATION.OBJECT_FILTER", JditoFilterUtils.getContextFilter(contextID,vars.get("$sys.filter").filter), SqlBuilder.LIKE());
     } 
     return parseInt(rowCount.cell());
 }
@@ -968,46 +972,6 @@ Observation.actionState = function (pSelectedUIDs, pIsCancelAction)
     }
 }
 
-/**
- * Returns an object with the entity and filter. 
- * If filter or entity are not set, they are set to an empty filter and the current entity.
- * 
- * @param {String} [pEntity]
- * @param {Object} [pFilterObj]
- * @return {Object} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"}
- */
-Observation.getEntityFilter = function (pEntity, pFilterObj) 
-{
-    if (!pEntity)
-        pEntity = ContextUtils.getEntity(ContextUtils.getCurrentContextId());
-    if (!pFilterObj)
-    {
-        pFilterObj = {
-            "type":"group",
-            "operator":"AND",
-            "childs":[]
-        };
-    }
-    
-    return JSON.stringify({
-        "filter":pFilterObj,
-        "entity":pEntity
-    });
-}
-
-/**
- * Returns an object with the entity and filter. 
- * If filter or context are not set, they are set to an empty filter and the context of the current entity.
- * 
- * @param {String} [pContext]
- * @param {Object} [pFilter]
- * @return {Object} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"}
- */
-Observation.getContextFilter = function (pContext, pFilter)
-{
-    return Observation.getEntityFilter(ContextUtils.getEntity(pContext), pFilter);
-}
-
 /**
  * Gives all possible fields which can be observed. 
  * 
diff --git a/process/buildExport_serverProcess/buildExport_serverProcess.aod b/process/buildExport_serverProcess/buildExport_serverProcess.aod
new file mode 100644
index 0000000000000000000000000000000000000000..845ca703843de1c8c9732b551712e616ae8af35a
--- /dev/null
+++ b/process/buildExport_serverProcess/buildExport_serverProcess.aod
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2">
+  <name>buildExport_serverProcess</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/buildExport_serverProcess/process.js</process>
+  <variants>
+    <element>EXECUTABLE</element>
+  </variants>
+</process>
diff --git a/process/buildExport_serverProcess/process.js b/process/buildExport_serverProcess/process.js
new file mode 100644
index 0000000000000000000000000000000000000000..19f950b047f91924a1d4a966a7e76122a15f4bb9
--- /dev/null
+++ b/process/buildExport_serverProcess/process.js
@@ -0,0 +1,42 @@
+import("Util_lib");
+import("ExportTemplate_lib");
+import("Document_lib");
+import("system.text");
+import("system.translate");
+import("Binary_lib");
+import("system.util");
+import("Bulkmail_lib");
+import("system.result");
+import("system.vars");
+import("KeywordRegistry_basic");
+import("system.notification");
+
+var user = vars.get("$local.user");
+var selection = JSON.parse(vars.get("$local.selection"));
+var exportTemplateId = vars.get("$local.exportTemplateId");
+var charset = vars.get("$local.charset");
+var filename = vars.get("$local.filename");
+
+var document = ExportTemplateUtils.buildExport(exportTemplateId, selection, filename, charset);
+
+let id = SingleBinaryUtils.set("EXPORTTEMPLATE", "EXPORTFILE", exportTemplateId, document.content, document.filename, "");
+
+if (id === true)
+{
+    id = SingleBinaryUtils.getMetadata("EXPORTTEMPLATE", "EXPORTFILE", exportTemplateId, null, null).id;
+}
+
+var message = translate.text("Download ready");
+var description = translate.withArguments("Export CSV \"%0\" can now be downloaded", [document.title]);
+
+var notificationConfig = notification.createConfig()
+.initialState(notification.STATE_UNSEEN)
+.forcedPriority(notification.PRIO_NORMAL)
+.linkInfo(text.encodeMS(["Document", id]))
+.daysToLive(2)
+.addUserWithId(user)
+.notificationType("DownloadReady")
+.caption(message)
+.description(description);
+    
+notification.addNotificationWith(notificationConfig);
\ No newline at end of file