From d5add0a1b891b668af0795616c1ee741498f94cb Mon Sep 17 00:00:00 2001
From: "m.groppe" <m.groppe@adito.de>
Date: Tue, 23 Nov 2021 19:00:45 +0100
Subject: [PATCH] =?UTF-8?q?[Projekt:=20xRM-Marketing][TicketNr.:=202001566?=
 =?UTF-8?q?][[Kampagne=20]=20Exportfunktion=20f=C3=BCr=20Teilnehmer=20eine?=
 =?UTF-8?q?r=20Stufe]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 entity/CampaignStep_entity/CampaignStep_entity.aod    |  4 ++++
 .../group/children/export_action/onActionProcess.js   | 11 +++++++++++
 process/Dependency_lib/process.js                     | 10 ++++++++++
 process/ExportTemplate_lib/process.js                 |  3 ++-
 4 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100644 entity/CampaignStep_entity/entityfields/group/children/export_action/onActionProcess.js

diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod
index 3d40d3531e..5a568b8af9 100644
--- a/entity/CampaignStep_entity/CampaignStep_entity.aod
+++ b/entity/CampaignStep_entity/CampaignStep_entity.aod
@@ -411,6 +411,10 @@
           <isObjectAction v="false" />
           <iconId>VAADIN:AT</iconId>
         </entityActionField>
+        <entityActionField>
+          <name>Export_action</name>
+          <onActionProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/group/children/export_action/onActionProcess.js</onActionProcess>
+        </entityActionField>
       </children>
     </entityActionGroup>
     <entityField>
diff --git a/entity/CampaignStep_entity/entityfields/group/children/export_action/onActionProcess.js b/entity/CampaignStep_entity/entityfields/group/children/export_action/onActionProcess.js
new file mode 100644
index 0000000000..6c68dcef71
--- /dev/null
+++ b/entity/CampaignStep_entity/entityfields/group/children/export_action/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/process/Dependency_lib/process.js b/process/Dependency_lib/process.js
index efe81c43ef..2c137e74db 100644
--- a/process/Dependency_lib/process.js
+++ b/process/Dependency_lib/process.js
@@ -1031,6 +1031,16 @@ Dependency.mapping = function ()
                     "isObservable" : true
                 },
                 "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CAMPAIGNSTEPID", "CampaignStep", "CAMPAIGNSTEP")
+            },
+            "CampaignParticipant_entity" : 
+            {
+                "options" : 
+                {
+                    "isExportable" : true,
+                    "isObservable" : false
+                }, 
+                "getUIDsfn" : Dependency.defaultFunctionForRelation("CAMPAIGNPARTICIPANT", "CAMPAIGNSTEP_ID", "CAMPAIGNSTEPID", null, "CAMPAIGNSTEPID", "CAMPAIGNPARTICIPANTID"), 
+                "fieldsToLoad" : ["CAMPAIGNSTEPID"]
             }
         },
         "Lead_entity" : 
diff --git a/process/ExportTemplate_lib/process.js b/process/ExportTemplate_lib/process.js
index 0c7b4b9205..daf23fb9a3 100644
--- a/process/ExportTemplate_lib/process.js
+++ b/process/ExportTemplate_lib/process.js
@@ -501,6 +501,7 @@ ExportTemplateUtils.exportableEntities = function ()
     "Offer_entity",
     "Organisation_entity",
     "Person_entity",
-    "Salesproject_entity"
+    "Salesproject_entity",
+    "CampaignStep_entity"
     ];
 }
\ No newline at end of file
-- 
GitLab