diff --git a/entity/Activity_entity/entityfields/filteractions/children/addattributetoselection/onActionProcess.js b/entity/Activity_entity/entityfields/filteractions/children/addattributetoselection/onActionProcess.js
index 7f18e32eb51f3d1d6e33f1f00f8b8526adb4710e..58763add70192149fbe05e172d9f8c8392474658 100644
--- a/entity/Activity_entity/entityfields/filteractions/children/addattributetoselection/onActionProcess.js
+++ b/entity/Activity_entity/entityfields/filteractions/children/addattributetoselection/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.translate");
 import("system.neon");
 import("Context_lib");
@@ -23,4 +24,5 @@ var params = {
     "ContextTitlePlural_param": translate.text("Activities")
 }
 
-neon.openContext("AddAttributesToSelection", "AddAttributesToSelectionEdit_view", null, neon.OPERATINGSTATE_NEW, params, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("AddAttributesToSelection", "AddAttributesToSelectionEdit_view", neon.OPERATINGSTATE_NEW, recipe, null);
diff --git a/entity/Activity_entity/entityfields/msteamsactions/children/importfromteams/onActionProcess.js b/entity/Activity_entity/entityfields/msteamsactions/children/importfromteams/onActionProcess.js
index 102768f5f8e122cca4946d1cce6beae65d2e3ff5..063b90943eb088bdf0ea4256d288447770335331 100644
--- a/entity/Activity_entity/entityfields/msteamsactions/children/importfromteams/onActionProcess.js
+++ b/entity/Activity_entity/entityfields/msteamsactions/children/importfromteams/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("MSTeamsActivityImport", "MSTeamsActivityImportEdit_view", null, neon.OPERATINGSTATE_VIEW, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "ObjectRowId_param" : vars.get("$param.RowId_param"),
     "ObjectType_param": vars.get("$param.ObjectId_param")
-});
\ No newline at end of file
+}).toString();
+neon.openContextWithRecipe("MSTeamsActivityImport", "MSTeamsActivityImportEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/Analyses_entity/entityfields/opennewtasks/onActionProcess.js b/entity/Analyses_entity/entityfields/opennewtasks/onActionProcess.js
index 696815d5aed5b5a1394a46b3f2d46c29fff8a024..e4e029fbbe6a7d8b79c04797d8b34d261f69ad66 100644
--- a/entity/Analyses_entity/entityfields/opennewtasks/onActionProcess.js
+++ b/entity/Analyses_entity/entityfields/opennewtasks/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("Sql_lib");
 import("Employee_lib");
@@ -8,5 +9,6 @@ var taskIds = newSelect("TASKID")
     .where("TASK.STATUS", $KeywordRegistry.taskStatus$new())
     .and("TASK.EDITOR_CONTACT_ID", EmployeeUtils.getCurrentContactId())
     .arrayColumn();
-    
-neon.openContext("Task", "TaskFilter_view", taskIds, neon.OPERATINGSTATE_SEARCH, null);
\ No newline at end of file
+
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist(taskIds).toString();
+neon.openContextWithRecipe("Task", "TaskFilter_view", neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/Analyses_entity/entityfields/openoverduetasks/onActionProcess.js b/entity/Analyses_entity/entityfields/openoverduetasks/onActionProcess.js
index d52c73bc8af0af61536cfc466df6fce12a8c290c..1bb094a9d4f00c1d93a4b92b7111384ad8ac945c 100644
--- a/entity/Analyses_entity/entityfields/openoverduetasks/onActionProcess.js
+++ b/entity/Analyses_entity/entityfields/openoverduetasks/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.db");
 import("ActivityTask_lib");
@@ -12,4 +13,5 @@ var overdueTask = newSelect("TASKID")
                     .and("TASK.STATUS", TaskUtils.getEndedStatuses(), SqlBuilder.NOT_IN())
                     .array(db.COLUMN)
 
-neon.openContext("Task", "TaskFilter_view", overdueTask, neon.OPERATINGSTATE_SEARCH, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist(overdueTask).toString();
+neon.openContextWithRecipe("Task", "TaskFilter_view", neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/AroundLocation_entity/entityfields/open/onActionProcess.js b/entity/AroundLocation_entity/entityfields/open/onActionProcess.js
index 10fa1eeb0072f9ca47d9df86503fbd82c530de2f..afbcc6ed404ec45d03964cf49ee92664afa84598 100644
--- a/entity/AroundLocation_entity/entityfields/open/onActionProcess.js
+++ b/entity/AroundLocation_entity/entityfields/open/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Context_lib");
 import("system.vars");
 import("system.neon");
@@ -38,4 +39,6 @@ var params = {
     MapViewCenterLat_param: vars.get("$param.LocationLat_param"),
     MapViewCenterLon_param: vars.get("$param.LocationLon_param")
 };
-neon.openContext("Organisation", "OrganisationFilter_view", contactIds, neon.OPERATINGSTATE_SEARCH, params, null);
\ No newline at end of file
+
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist(contactIds).parameters(params).toString();
+neon.openContextWithRecipe("Organisation", "OrganisationFilter_view", neon.OPERATINGSTATE_SEARCH, recipe, null);
diff --git a/entity/BulkMailAddMosaico_entity/BulkMailAddMosaico_entity.aod b/entity/BulkMailAddMosaico_entity/BulkMailAddMosaico_entity.aod
index 060d3e16f7181a02024785e4d96ddccf246828cb..849768b872a9a9a551be334ff3f16ed8b92177c7 100644
--- a/entity/BulkMailAddMosaico_entity/BulkMailAddMosaico_entity.aod
+++ b/entity/BulkMailAddMosaico_entity/BulkMailAddMosaico_entity.aod
@@ -13,7 +13,6 @@
     </entityProvider>
     <entityField>
       <name>BASETEMPLATE</name>
-      <documentation>%aditoprj%/entity/BulkMailAddMosaico_entity/entityfields/basetemplate/documentation.adoc</documentation>
       <title>Base Template</title>
       <consumer>BaseTemplates</consumer>
       <mandatory v="true" />
diff --git a/entity/BulkMailAddMosaico_entity/entityfields/basetemplate/documentation.adoc b/entity/BulkMailAddMosaico_entity/entityfields/basetemplate/documentation.adoc
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
index e480636ca5221e73739626f4cf04285a7fe5cdd9..93f179c0eeceb488ce7d39d606955a9246b6d7e9 100644
--- a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
+++ b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
@@ -140,7 +140,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/BulkMailRecipient_entity/entityfields/emailadresses/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/BulkMailRecipient_entity/entityfields/emailadresses/children/objectrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/BulkMailRecipient_entity/entityfields/emailadresses/children/objectrowid_param/valueProcess.js b/entity/BulkMailRecipient_entity/entityfields/emailadresses/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf4b6cd38a6154032bc3607894ce054e4754a062
--- /dev/null
+++ b/entity/BulkMailRecipient_entity/entityfields/emailadresses/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.CONTACT_ID"));
diff --git a/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/onActionProcess.js b/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/onActionProcess.js
index cbe91449e5c258643491b9020a7bc6d1b534e7ec..20965cbf9fccdf42d3081f073cfd718a87e2c0b7 100644
--- a/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/onActionProcess.js
+++ b/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Util_lib");
 import("system.entities");
 import("Context_lib");
@@ -28,7 +29,8 @@ rows = rows.map(function (row)
 });
 
 
-neon.openContext("MarketingWorkflowLauncher", "MarketingWorkflowLauncherEdit_view", null, neon.OPERATINGSTATE_VIEW, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "ObjectIds_param": JSON.stringify(rows),
     "ObjectType_param": ContextUtils.getCurrentContextId()
-});
\ No newline at end of file
+}).toString();
+neon.openContextWithRecipe("MarketingWorkflowLauncher", "MarketingWorkflowLauncherEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/BulkMail_entity/entityfields/newmosaicotemplate/onActionProcess.js b/entity/BulkMail_entity/entityfields/newmosaicotemplate/onActionProcess.js
index 55e632ebbcdeb6bf790e5834e6df79e9fe6747a5..23004982893c46fee3196c955f7b15d67440e654 100644
--- a/entity/BulkMail_entity/entityfields/newmosaicotemplate/onActionProcess.js
+++ b/entity/BulkMail_entity/entityfields/newmosaicotemplate/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars")
 
@@ -5,4 +6,5 @@ var params = {
     "BulkMailId_param": vars.get("$field.BULKMAILID")
 };
 
-neon.openContext("BulkMailAddMosaico", "BulkMailAddMosaicoEdit_view",null, neon.OPERATINGSTATE_VIEW, params, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("BulkMailAddMosaico", "BulkMailAddMosaicoEdit_view", neon.OPERATINGSTATE_VIEW, recipe, null);
diff --git a/entity/CampaignAddParticipants_entity/entityfields/addparticipants/onActionProcess.js b/entity/CampaignAddParticipants_entity/entityfields/addparticipants/onActionProcess.js
index 84403dfc78ca03abd5aa665ef054d32d5ff86275..f163b4c8d616c5b0a9596e9031f39f4dc3852618 100644
--- a/entity/CampaignAddParticipants_entity/entityfields/addparticipants/onActionProcess.js
+++ b/entity/CampaignAddParticipants_entity/entityfields/addparticipants/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.workflow");
 import("ActivityTask_lib");
 import("Contact_lib");
@@ -33,7 +34,8 @@ if(contactIds != null && contactIds.length > 0)
 neon.refreshAll();
 if (!vars.exists("$param.currentCampaignId_param") || !vars.get("$param.currentCampaignId_param"))
 {
-    neon.openContext("Campaign", "CampaignMain_view", [campaignId], neon.OPERATINGSTATE_VIEW, null); 
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([campaignId]).toString();
+    neon.openContextWithRecipe("Campaign", "CampaignMain_view", neon.OPERATINGSTATE_VIEW, recipe); 
 }
 else
 {
diff --git a/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.displayvalue/expression.js b/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.displayvalue/expression.js
deleted file mode 100644
index 02a585f840c78bfdcc768640e146bd2f4b41f008..0000000000000000000000000000000000000000
--- a/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/standard_email_communication.displayvalue/expression.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import("Sql_lib");
-import("system.result");
-import("Communication_lib");
-
-var res = CommUtil.getStandardSubSqlMail(newWhere("COMMUNICATION.OBJECT_ROWID = CAMPAIGNPARTICIPANT.CONTACT_ID"));
-result.string(res);
\ No newline at end of file
diff --git a/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.displayvalue/expression.js b/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.displayvalue/expression.js
deleted file mode 100644
index b13adb6ad2bc89f776b5ad17a811005e1050f85d..0000000000000000000000000000000000000000
--- a/entity/CampaignParticipant_entity/recordcontainers/db/recordfieldmappings/standard_phone_communication.displayvalue/expression.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import("system.result");
-import("Communication_lib");
-import("Sql_lib");
-
-var res = CommUtil.getStandardSubSqlPhone(newWhere("COMMUNICATION.OBJECT_ROWID = CAMPAIGNPARTICIPANT.CONTACT_ID"));
-result.string(res);
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/newcampaignstep/onActionProcess.js b/entity/CampaignStep_entity/entityfields/newcampaignstep/onActionProcess.js
index 0c0f7ed6eae7bfa476f1bc34efa2cbf3bc0c2644..83ee990a09836c88ccfc8147a604de33912e50d6 100644
--- a/entity/CampaignStep_entity/entityfields/newcampaignstep/onActionProcess.js
+++ b/entity/CampaignStep_entity/entityfields/newcampaignstep/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("CampaignStep", "CampaignStepEdit_view", null, neon.OPERATINGSTATE_NEW, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     campaignId_param: vars.get("$param.campaignId_param"),
     predecessorstepId_param: vars.get("$field.CAMPAIGNSTEPID")
-});
\ No newline at end of file
+}).toString();
+neon.openContextWithRecipe("CampaignStep", "CampaignStepEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/CommunicationChannel_entity/CommunicationChannel_entity.aod b/entity/CommunicationChannel_entity/CommunicationChannel_entity.aod
index 09c1b1f163590a4b87975c546d1b0b3eefcff964..70f720c867d5ac532bbb25fbca73b340d4fcb614 100644
--- a/entity/CommunicationChannel_entity/CommunicationChannel_entity.aod
+++ b/entity/CommunicationChannel_entity/CommunicationChannel_entity.aod
@@ -38,7 +38,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/CommunicationChannel_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/CommunicationChannel_entity/entityfields/communications/children/objectrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
         <entityParameter>
           <name>CommCategory_param</name>
diff --git a/entity/CommunicationChannel_entity/entityfields/communications/children/contactid_param/valueProcess.js b/entity/CommunicationChannel_entity/entityfields/communications/children/contactid_param/valueProcess.js
deleted file mode 100644
index 2f392d5c2e143090012fa5b4cc765d8e5ba278ac..0000000000000000000000000000000000000000
--- a/entity/CommunicationChannel_entity/entityfields/communications/children/contactid_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.vars");
-import("system.result");
-
-result.string(vars.get("$param.ContactId_param"));
\ No newline at end of file
diff --git a/entity/CommunicationChannel_entity/entityfields/communications/children/objectrowid_param/valueProcess.js b/entity/CommunicationChannel_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..cf217a4aa0b0019d2dc3705db537d13354cb7126
--- /dev/null
+++ b/entity/CommunicationChannel_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$param.ContactId_param"));
diff --git a/entity/Contact_entity/Contact_entity.aod b/entity/Contact_entity/Contact_entity.aod
index 599739ccf13b1d4875a6363e357fe4b2173c9fe5..70dab15cc1710f84971b2cd3be98f854c8546b51 100644
--- a/entity/Contact_entity/Contact_entity.aod
+++ b/entity/Contact_entity/Contact_entity.aod
@@ -108,7 +108,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Contact_entity/entityfields/communications/children/objectrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/Contact_entity/entityfields/communications/children/contactid_param/valueProcess.js b/entity/Contact_entity/entityfields/communications/children/contactid_param/valueProcess.js
deleted file mode 100644
index 821415ae694dd9c3d98a7703f4c59b81a37f524b..0000000000000000000000000000000000000000
--- a/entity/Contact_entity/entityfields/communications/children/contactid_param/valueProcess.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import("system.vars");
-import("system.result");
-result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js b/entity/Contact_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
similarity index 52%
rename from entity/Organisation_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js
rename to entity/Contact_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
index 70a1c0fcc1293fa4bf37109294829055704eeaea..e150961ba9714738904f3c419857f981f0601d6b 100644
--- a/entity/Organisation_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js
+++ b/entity/Contact_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.result");
 import("system.vars");
 
-result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
+result.string(vars.get("$field.CONTACTID"));
diff --git a/entity/Context_entity/entityfields/salesorderlinkeablet/children/blacklist_param/valueProcess.js b/entity/Context_entity/entityfields/salesorderlinkeablet/children/blacklist_param/valueProcess.js
deleted file mode 100644
index 1322527cbbdb3bdc8b39b9b566f8c82dc67b33e9..0000000000000000000000000000000000000000
--- a/entity/Context_entity/entityfields/salesorderlinkeablet/children/blacklist_param/valueProcess.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import("system.result");
-
-result.object(["Salesproject", "Salesorder"]);
\ No newline at end of file
diff --git a/entity/Context_entity/entityfields/salesorderlinkeablet/children/invertblacklist_param/valueProcess.js b/entity/Context_entity/entityfields/salesorderlinkeablet/children/invertblacklist_param/valueProcess.js
deleted file mode 100644
index 40effa0178464da0c7850912345f19c7fa95975a..0000000000000000000000000000000000000000
--- a/entity/Context_entity/entityfields/salesorderlinkeablet/children/invertblacklist_param/valueProcess.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import("system.result");
-
-result.string(true);
\ No newline at end of file
diff --git a/entity/DSGVOConfiguration_entity/entityfields/opencontacts/onActionProcess.js b/entity/DSGVOConfiguration_entity/entityfields/opencontacts/onActionProcess.js
index 36f8bf311d6d36d3c7f19d97c0df4c02ad6ae438..5862346eaae4d2fe31e1a9458454866a2212e49e 100644
--- a/entity/DSGVOConfiguration_entity/entityfields/opencontacts/onActionProcess.js
+++ b/entity/DSGVOConfiguration_entity/entityfields/opencontacts/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("system.translate");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("Person", "PersonFilterOverlay_view", null, neon.OPERATINGSTATE_SEARCH , {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     FilterPreSet_param: JSON.stringify(JSON.parse(vars.get("$field.FILTER")).filter)
-});
\ No newline at end of file
+}).toString();
+neon.openContextWithRecipe("Person", "PersonFilterOverlay_view", neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/DSGVO_entity/entityfields/reports/children/opendisclosurereport/onActionProcess.js b/entity/DSGVO_entity/entityfields/reports/children/opendisclosurereport/onActionProcess.js
index b92d3e414a7b9a7ea174c2108f4c8c57b6048b9f..98209f4529c1978994cdae8749b4496237233666 100644
--- a/entity/DSGVO_entity/entityfields/reports/children/opendisclosurereport/onActionProcess.js
+++ b/entity/DSGVO_entity/entityfields/reports/children/opendisclosurereport/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.vars");
 import("DataPrivacy_lib");
 import("system.neon");
@@ -14,8 +15,8 @@ if (entities.getRowCount(conf) > 0)
     mode = neon.OPERATINGSTATE_EDIT;
 }
 
-neon.openContext("DSGVOInfo", "DSGVOInfoEdit_view", null, mode, 
-                    {
-                        ContactId_param: vars.get("$field.CONTACT_ID"),
-                        ReportType_param: DataPrivacyUtils.DisclosureReportName()
-                    });
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
+    ContactId_param: vars.get("$field.CONTACT_ID"),
+    ReportType_param: DataPrivacyUtils.DisclosureReportName()
+}).toString();
+neon.openContextWithRecipe("DSGVOInfo", "DSGVOInfoEdit_view", mode, recipe);
diff --git a/entity/DSGVO_entity/entityfields/reports/children/openinforeport/onActionProcess.js b/entity/DSGVO_entity/entityfields/reports/children/openinforeport/onActionProcess.js
index 1ea74f266d1a21459b5ae696fbcc4899dc280f9e..2b16b8f8c69a1da10c53b76e844d7ec28f99c789 100644
--- a/entity/DSGVO_entity/entityfields/reports/children/openinforeport/onActionProcess.js
+++ b/entity/DSGVO_entity/entityfields/reports/children/openinforeport/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.vars");
 import("DataPrivacy_lib");
 import("system.neon");
@@ -14,8 +15,8 @@ if (entities.getRowCount(conf) > 0)
     mode = neon.OPERATINGSTATE_EDIT;
 }
 
-neon.openContext("DSGVOInfo", "DSGVOInfoEdit_view", null, mode, 
-                    {
-                        "param.ContactId_param": vars.get("$field.CONTACT_ID"),
-                        "param.ReportType_param": "DSGVO_Information_report"
-                    });
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
+    "param.ContactId_param": vars.get("$field.CONTACT_ID"),
+    "param.ReportType_param": "DSGVO_Information_report"
+}).toString();
+neon.openContextWithRecipe("DSGVOInfo", "DSGVOInfoEdit_view", mode, recipe);
diff --git a/entity/DistrictContact_entity/entityfields/filterviewactiongroup/children/changevalidity/onActionProcess.js b/entity/DistrictContact_entity/entityfields/filterviewactiongroup/children/changevalidity/onActionProcess.js
index 2c9ee12df9c8241caeeed76b2301de4bc88b1635..4ba48c340dbc3a9056a190f185f155c292d14942 100644
--- a/entity/DistrictContact_entity/entityfields/filterviewactiongroup/children/changevalidity/onActionProcess.js
+++ b/entity/DistrictContact_entity/entityfields/filterviewactiongroup/children/changevalidity/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.translate");
 import("system.neon");
 import("Context_lib");
@@ -24,4 +25,5 @@ var params = {
     "DistrictContactIds_param": JSON.stringify(districtContactIds)
 }
 
-neon.openContext("DistrictChangeValidityDates", "DistrictChangeValidityDatesEdit_view", null, neon.OPERATINGSTATE_NEW, params, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("DistrictChangeValidityDates", "DistrictChangeValidityDatesEdit_view", neon.OPERATINGSTATE_NEW, recipe, null);
diff --git a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
index c18b97ff7403516591010d350e34850adc1d0a77..2dd65952719aafea017d76a58f9328ed95b79c89 100644
--- a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
+++ b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod
@@ -185,6 +185,7 @@
       <targetContextField>TARGET_CONTEXT</targetContextField>
       <targetIdField>DOCUMENTTEMPLATEID</targetIdField>
       <targetConsumerProcess></targetConsumerProcess>
+      <documentation>%aditoprj%/entity/DocumentTemplate_entity/entityfields/attachments/documentation.adoc</documentation>
       <titlePlural>Attachments</titlePlural>
       <recordContainer>db</recordContainer>
     </entityProvider>
diff --git a/entity/DocumentTemplate_entity/entityfields/attachments/documentation.adoc b/entity/DocumentTemplate_entity/entityfields/attachments/documentation.adoc
index fffc7bdb9141b4afad4836cebb0c2069dc0d3808..2f423bf78fd045997642adf209185984b2d4f798 100644
--- a/entity/DocumentTemplate_entity/entityfields/attachments/documentation.adoc
+++ b/entity/DocumentTemplate_entity/entityfields/attachments/documentation.adoc
@@ -1,3 +1,3 @@
 = DocumentTemplate_entity - Attachments
 
-needed instead of the #PROVIDER so the DocumentTemplateType_param can be used
\ No newline at end of file
+needed instead of the #PROVIDER so the DocumentTemplateType_param can be used
diff --git a/entity/DocumentTemplate_entity/entityfields/openhtmleditor/onActionProcess.js b/entity/DocumentTemplate_entity/entityfields/openhtmleditor/onActionProcess.js
index fffffbec7b3c32bd321a33286a6db7cbd07dc13a..052d691a66caea854bb71e467d5d340bcc57f5ae 100644
--- a/entity/DocumentTemplate_entity/entityfields/openhtmleditor/onActionProcess.js
+++ b/entity/DocumentTemplate_entity/entityfields/openhtmleditor/onActionProcess.js
@@ -1,6 +1,8 @@
+import("system.neonFilter");
 import("system.logging");
 import("system.vars");
 import("DocumentTemplate_lib");
 import("system.neon");
 
-neon.openContext("DocumentTemplate", "DocumentTemplateHtmlEdit_view", [vars.get("$field.DOCUMENTTEMPLATEID")], neon.OPERATINGSTATE_EDIT, null)
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$field.DOCUMENTTEMPLATEID")]).toString();
+neon.openContextWithRecipe("DocumentTemplate", "DocumentTemplateHtmlEdit_view", neon.OPERATINGSTATE_EDIT, recipe);
diff --git a/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/onActionProcess.js b/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/onActionProcess.js
index aef50aebaf302304a699c6713ceeec227d70350b..1903a1eec47fdcb1c1fd60d8198b96deda7a5e35 100644
--- a/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/onActionProcess.js
+++ b/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/onActionProcess.js
@@ -1,9 +1,11 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
-neon.openContext("MSTeamsDocument", "MSTeamsDocumentEdit_view", null, neon.OPERATINGSTATE_VIEW, {
-    "MSTTeamId_param" : vars.get("$param.MSTTeamId_param"),
-    "ObjectRowId_param" : vars.get("$param.AssignmentRowId_param"),
-    "AssignmentName_param" : vars.get("$param.AssignmentName_param"),
-    "AssignmentTable_param" : vars.get("$param.AssignmentTable_param")
-});
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
+    "MSTTeamId_param": vars.get("$param.MSTTeamId_param"),
+    "ObjectRowId_param": vars.get("$param.AssignmentRowId_param"),
+    "AssignmentName_param": vars.get("$param.AssignmentName_param"),
+    "AssignmentTable_param": vars.get("$param.AssignmentTable_param")
+}).toString();
+neon.openContextWithRecipe("MSTeamsDocument", "MSTeamsDocumentEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/DuplicateScanner_entity/entityfields/filteractions/children/viewduplicates/onActionProcess.js b/entity/DuplicateScanner_entity/entityfields/filteractions/children/viewduplicates/onActionProcess.js
index cf88cee6543b98e43bce2a2ac9ab24e9a0f38e9d..9b22bfa1986f91f096e47756893d80a4f5df89eb 100644
--- a/entity/DuplicateScanner_entity/entityfields/filteractions/children/viewduplicates/onActionProcess.js
+++ b/entity/DuplicateScanner_entity/entityfields/filteractions/children/viewduplicates/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Sql_lib");
 import("system.translate");
 import("system.question");
@@ -18,9 +19,10 @@ if(vars.get("$sys.selection").length == 1)
                                                             .where("UNRELATEDDUPLICATES.DUPLICATETYPE = HASDUPLICATE.OBJECT_TYPE"), SqlBuilder.NOT_IN())
                         .arrayColumn();
     
-    neon.openContext(contextId, null, duplicateIds, neon.OPERATINGSTATE_SEARCH, null);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist(duplicateIds);
+    neon.openContextWithRecipe(contextId, null, neon.OPERATINGSTATE_SEARCH, recipe.toString());
 }
 else
 {
     question.showMessage(translate.text("Please select only one element"));
-}
\ No newline at end of file
+}
diff --git a/entity/Duplicate_entity/entityfields/filteractions/children/mergecurrentintoselected/onActionProcess.js b/entity/Duplicate_entity/entityfields/filteractions/children/mergecurrentintoselected/onActionProcess.js
index efe4c00f3c7d81a6d5d8c6c03d107304f8e3cb36..5732402f2f60914403282b5154a8b12c12c67d45 100644
--- a/entity/Duplicate_entity/entityfields/filteractions/children/mergecurrentintoselected/onActionProcess.js
+++ b/entity/Duplicate_entity/entityfields/filteractions/children/mergecurrentintoselected/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.translate");
 import("system.question");
 import("Employee_lib");
@@ -19,7 +20,8 @@ if(vars.get("$sys.selection").length == 1)
         let currentContactId = EmployeeUtils.getCurrentContactId() || "";
         DuplicateMergeUtils.createMergeSuccessActivity(sourceContactId, targetContactId, currentContactId, context);
 
-        neon.openContext(context, null, [targetContactId], neon.OPERATINGSTATE_VIEW, null);
+        var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([targetContactId]);
+        neon.openContextWithRecipe(context, null, neon.OPERATINGSTATE_VIEW, recipe.toString());
     }
 }
 else
diff --git a/entity/EmailFilterHandling_entity/entityfields/filterviewactiongroup/children/setworkflow/onActionProcess.js b/entity/EmailFilterHandling_entity/entityfields/filterviewactiongroup/children/setworkflow/onActionProcess.js
index 57bfcdde180441256fb21f64682c4d61217894bf..4f6377a46b30e86c04996d2091e552ac87362630 100644
--- a/entity/EmailFilterHandling_entity/entityfields/filterviewactiongroup/children/setworkflow/onActionProcess.js
+++ b/entity/EmailFilterHandling_entity/entityfields/filterviewactiongroup/children/setworkflow/onActionProcess.js
@@ -1,10 +1,12 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
 var selection = JSON.stringify(vars.get("$sys.selection"));
 var filter = JSON.stringify(vars.get("$sys.filter"));
 
- neon.openContext("EmailFilterHandlingSetWorkflow", "EmailFilterHandlingSetWorkflowEdit_view", null, neon.OPERATINGSTATE_VIEW, {
-        "Selection_param": selection,
-        "Filter_param": filter
-    });
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
+    "Selection_param": selection,
+    "Filter_param": filter
+}).toString();
+neon.openContextWithRecipe("EmailFilterHandlingSetWorkflow", "EmailFilterHandlingSetWorkflowEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/Email_entity/Email_entity.aod b/entity/Email_entity/Email_entity.aod
index d052d52f1b9437b05fc21ffa314a3931f9acff4c..5946c7a78415ac2af943f35482dfdac215a64235 100644
--- a/entity/Email_entity/Email_entity.aod
+++ b/entity/Email_entity/Email_entity.aod
@@ -65,7 +65,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Email_entity/entityfields/emailaddresses/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Email_entity/entityfields/emailaddresses/children/objectrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/Email_entity/entityfields/emailaddresses/children/contactid_param/valueProcess.js b/entity/Email_entity/entityfields/emailaddresses/children/contactid_param/valueProcess.js
deleted file mode 100644
index 3a6cbb1ace318c2cbb496a21e49d5339cb92f206..0000000000000000000000000000000000000000
--- a/entity/Email_entity/entityfields/emailaddresses/children/contactid_param/valueProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.vars");
-import("system.result");
-
-if (vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param"))
-    result.string(vars.get("$param.ContactId_param"));
\ No newline at end of file
diff --git a/entity/Email_entity/entityfields/emailaddresses/children/objectrowid_param/valueProcess.js b/entity/Email_entity/entityfields/emailaddresses/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a04bac111b6262a818e151f1968639e4a0acd16
--- /dev/null
+++ b/entity/Email_entity/entityfields/emailaddresses/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.vars");
+
+if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param"))
+{
+    result.string(vars.get("$param.ContactId_param"));
+}
diff --git a/entity/EmployeeGroupContactRelation_entity/recordcontainers/db/recordfieldmappings/firstname.value/expression.js b/entity/EmployeeGroupContactRelation_entity/recordcontainers/db/recordfieldmappings/firstname.value/expression.js
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/entity/Employee_entity/entityfields/setpassword/onActionProcess.js b/entity/Employee_entity/entityfields/setpassword/onActionProcess.js
index 47df2ead20cc125d332d120712a5f30184b81b70..9a7d772bde07f27c9a711b79c36e2e71864a085a 100644
--- a/entity/Employee_entity/entityfields/setpassword/onActionProcess.js
+++ b/entity/Employee_entity/entityfields/setpassword/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
 var params = {
     "PasswordChange_param" : true
 };
-neon.openContext("Employee", "EmployeePassword_view", [vars.get("$field.UID")], neon.OPERATINGSTATE_EDIT, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$field.UID")]).parameters(params);
+neon.openContextWithRecipe("Employee", "EmployeePassword_view", neon.OPERATINGSTATE_EDIT, recipe.toString());
diff --git a/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js
deleted file mode 100644
index be49d03de451c24366fc615db9b981efb4e15661..0000000000000000000000000000000000000000
--- a/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-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/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js
deleted file mode 100644
index 001cc890f029455658cd08a1d8ad7ce8259f24d7..0000000000000000000000000000000000000000
--- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.vars");
-import("system.result");
-
-result.string(vars.get("$param.ExportTemplateId_param"));
\ No newline at end of file
diff --git a/entity/ExportTemplate_entity/ExportTemplate_entity.aod b/entity/ExportTemplate_entity/ExportTemplate_entity.aod
index 4cea3664caaf81a16515e7a4967cde5cc2270001..fb44adf8cdfd18c9f09a5b6501e8c9c173dd5e5c 100644
--- a/entity/ExportTemplate_entity/ExportTemplate_entity.aod
+++ b/entity/ExportTemplate_entity/ExportTemplate_entity.aod
@@ -66,9 +66,9 @@
       <children>
         <entityParameter>
           <name>ExportTemplateId_param</name>
-          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplateid_param/valueProcess.js</valueProcess>
           <expose v="true" />
-          <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/documentation.adoc</documentation>
+          <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplateid_param/documentation.adoc</documentation>
         </entityParameter>
       </children>
     </entityConsumer>
diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/valueProcess.js
deleted file mode 100644
index 3cbc49005642cf289c724b7b2de89a5db926e630..0000000000000000000000000000000000000000
--- a/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-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/exporttemplatefields/children/exporttemplatefield_param/documentation.adoc b/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplateid_param/documentation.adoc
similarity index 98%
rename from entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/documentation.adoc
rename to entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplateid_param/documentation.adoc
index 7ff3082082e4138fb3e2b25da143e3099646eb9e..68913c76da9f444e879e2ed8d064ed0dd767aecd 100644
--- a/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/documentation.adoc
+++ b/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplateid_param/documentation.adoc
@@ -6,4 +6,4 @@ Exporttemplates are used to give the user an easy way to export Data from an tab
 linked via the ExportTemplateId to: 
 -ExportTemplateField_entity to make it possible to store multiple fields for one template
 -ExportTemplatePlaceOfUse_entity to make it possible to store multiple places of usage for one template
--ExportTemplateSelection_entity entity for the selection of the template
\ No newline at end of file
+-ExportTemplateSelection_entity entity for the selection of the template
diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplateid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f72aafc5a9d7e7dc25bb504b4f5b1d3c7cbcef8e
--- /dev/null
+++ b/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplateid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.EXPORTTEMPLATEID"));
diff --git a/entity/KnowledgeDiscussion_entity/entityfields/edit_actiongroup/children/addanswer_action/onActionProcess.js b/entity/KnowledgeDiscussion_entity/entityfields/edit_actiongroup/children/addanswer_action/onActionProcess.js
index 014090f103f492b497d4c4aec743a7108ad3eb0a..37ef9b5fd2fd2ff04ca55866b42affbb28e77ba3 100644
--- a/entity/KnowledgeDiscussion_entity/entityfields/edit_actiongroup/children/addanswer_action/onActionProcess.js
+++ b/entity/KnowledgeDiscussion_entity/entityfields/edit_actiongroup/children/addanswer_action/onActionProcess.js
@@ -1,9 +1,11 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
 var params = {
-    "KnowledgeId_param":vars.get("$param.KnowledgeId_param")
-    ,"ParentId_param":vars.get("$field.UID")
-}
+    "KnowledgeId_param": vars.get("$param.KnowledgeId_param"),
+    "ParentId_param": vars.get("$field.UID")
+};
 
-neon.openContext("KnowledgeDiscussion", "KnowledgeDiscussionEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("KnowledgeDiscussion", "KnowledgeDiscussionEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Leadimport_entity/entityfields/uploadnewfile/onActionProcess.js b/entity/Leadimport_entity/entityfields/uploadnewfile/onActionProcess.js
index e62547450131766e5bbb2a24282d84a1e4c6ad74..d7c1509904f63ab8e0e959b27816c31db655850e 100644
--- a/entity/Leadimport_entity/entityfields/uploadnewfile/onActionProcess.js
+++ b/entity/Leadimport_entity/entityfields/uploadnewfile/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
-neon.openContext("Leadimport", "LeadimportDocEdit_view", [vars.getString("$field.LEADIMPORTID")], neon.OPERATINGSTATE_EDIT, []);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.getString("$field.LEADIMPORTID")]);
+neon.openContextWithRecipe("Leadimport", "LeadimportDocEdit_view", neon.OPERATINGSTATE_EDIT, recipe.toString());
diff --git a/entity/LetterRecipient_entity/LetterRecipient_entity.aod b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
index 14b2acae39a42b62fc932748530717996b75abd9..f97ab95bb4136fd635014cafee0f106c96050ceb 100644
--- a/entity/LetterRecipient_entity/LetterRecipient_entity.aod
+++ b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
@@ -135,6 +135,7 @@
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>HASCOMMRESTRICTION.value</name>
+          <expression>%aditoprj%/entity/LetterRecipient_entity/recordcontainers/db/recordfieldmappings/hascommrestriction.value/expression.js</expression>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>TARGETCONTEXT.value</name>
diff --git a/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js b/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js
index a5650f2a632efa216c3877c4e2ce4a5544a1c95c..79da36d9cfbbb51a3bc24acca2bd6fe197ee35bc 100644
--- a/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js
+++ b/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.text");
 import("system.translate");
 import("Sql_lib");
@@ -25,10 +26,11 @@ var links = newSelect(["OBJECT_TYPE", "OBJECT_ROWID"])
 var teamName = ContextUtils.loadContentTitle("MSTTeam_entity", vars.get("$param.TeamId_param"));
 var channelName = ContextUtils.loadContentTitle("MSTeamsChannel_entity", vars.get("$param.Channel_param"),
     undefined, undefined, {TeamId_param: vars.get("$param.TeamId_param")});
-neon.openContext("Activity", "ActivityEdit_view", null, neon.OPERATINGSTATE_NEW, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     Info_param: description,
     PresetLinks_param: JSON.stringify(links),
     Direction_param: $KeywordRegistry.activityDirection$internal(),
     Subject_param: translate.text("MS-Teams Message") + " - " + teamName + " - " + channelName,
     Category_param: $KeywordRegistry.activityCategory$mstMessage()
-});
+}).toString();
+neon.openContextWithRecipe("Activity", "ActivityEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/MailSignatureDefaultSignature_entity/entityfields/save/onActionProcess.js b/entity/MailSignatureDefaultSignature_entity/entityfields/save/onActionProcess.js
index 382c10456c738742114270a284dc2da6e6c258f6..56d0da6dcf52408da4765beedfba72869e435b41 100644
--- a/entity/MailSignatureDefaultSignature_entity/entityfields/save/onActionProcess.js
+++ b/entity/MailSignatureDefaultSignature_entity/entityfields/save/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("Sql_lib");
 import("system.vars");
@@ -19,4 +20,5 @@ newWhere("MAILSIGNATURE.MAILSIGNATUREID", newDefaultSignature)
     });
 vars.set("$global.default_mailsignature", 1);
 
-neon.openContext("Inbox", "InboxMain_view", [vars.get("$param.InboxId_param")], neon.OPERATINGSTATE_VIEW, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$param.InboxId_param")]);
+neon.openContextWithRecipe("Inbox", "InboxMain_view", neon.OPERATINGSTATE_VIEW, recipe.toString());
diff --git a/entity/MailSignature_entity/entityfields/setdefaultsignature/children/setasdefaultsignature/onActionProcess.js b/entity/MailSignature_entity/entityfields/setdefaultsignature/children/setasdefaultsignature/onActionProcess.js
index c72a4e8cab110493c0c45c6008abecdae4276409..1e31f2b16b8191f948af508e16aaf3d72ecdcf48 100644
--- a/entity/MailSignature_entity/entityfields/setdefaultsignature/children/setasdefaultsignature/onActionProcess.js
+++ b/entity/MailSignature_entity/entityfields/setdefaultsignature/children/setasdefaultsignature/onActionProcess.js
@@ -1,8 +1,10 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
 var params = {
-    "InboxId_param" : vars.get("$param.InboxId_param")
-}
+    "InboxId_param": vars.get("$param.InboxId_param")
+};
 
-neon.openContext("MailSignatureDefaultSignature", "MailSignatureDefaultSignatureEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("MailSignatureDefaultSignature", "MailSignatureDefaultSignatureEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/onActionProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/onActionProcess.js
index b6ffb62af2e93df3b267c9b5f695aeb6282624db..8271e44ab10eaa3b3ab54bebba110e8053a5c16a 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/onActionProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/onActionProcess.js
@@ -1,9 +1,11 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 import("AttributeRegistry_basic");
 
-neon.openContext("AttributeRelation", null, null, neon.OPERATINGSTATE_NEW, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     AttributeId_param: $AttributeRegistry.mstTeam(),
     ObjectType_param: vars.get("$param.ObjectType_param"),
     ObjectRowId_param: vars.get("$param.ObjectRowId_param")
-});
+}).toString();
+neon.openContextWithRecipe("AttributeRelation", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/onActionProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/onActionProcess.js
index ed5f6c0ceae9984aca8f2eaa9daa7797247da83c..2866cea935483b91c78cd59efddb23f5ae512b07 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/onActionProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 import("system.teams");
@@ -22,4 +23,5 @@ if (objectType === "Salesproject")
     params["Description_param"] = description;
 }
 
-neon.openContext("MSTTeam", null, null, neon.OPERATINGSTATE_NEW, params);
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("MSTTeam", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/onActionProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/onActionProcess.js
index 746823a3b6e4b00635d7b22610a74dae24415986..a8bf6517f5b9e98ff9b653c974bfd60771eeafb9 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/onActionProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/onActionProcess.js
@@ -1,8 +1,11 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("MSTTeam", null, [vars.get("$param.MSTTeamId_param")], neon.OPERATINGSTATE_EDIT, {
-    "ObjectRowId_param": vars.get("$param.ObjectRowId_param"),
-    "ObjectType_param": vars.get("$param.ObjectType_param"),
-    "ContactIds_param": vars.get("$param.ContactIds_param")
-});
+var recipe = neonFilter.createEntityRecordsRecipeBuilder()
+    .uidsIncludelist([vars.get("$param.MSTTeamId_param")]).parameters({
+        "ObjectRowId_param": vars.get("$param.ObjectRowId_param"),
+        "ObjectType_param": vars.get("$param.ObjectType_param"),
+        "ContactIds_param": vars.get("$param.ContactIds_param")
+    }).toString();
+neon.openContextWithRecipe("MSTTeam", null, neon.OPERATINGSTATE_EDIT, recipe);
diff --git a/entity/Member_entity/recordcontainers/db/recordfieldmappings/organisation_id.displayvalue/expression.js b/entity/Member_entity/recordcontainers/db/recordfieldmappings/organisation_id.displayvalue/expression.js
deleted file mode 100644
index e372096370500c54d41c308657e1e0d72f6d1937..0000000000000000000000000000000000000000
--- a/entity/Member_entity/recordcontainers/db/recordfieldmappings/organisation_id.displayvalue/expression.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("Organisation_lib");
-import("system.result");
-
-result.string("ORGANISATION.NAME")
\ No newline at end of file
diff --git a/entity/MosaicoTemplate_entity/entityfields/copytemplate/onActionProcess.js b/entity/MosaicoTemplate_entity/entityfields/copytemplate/onActionProcess.js
index 7a09b1146c2906901c2e224d1679ef944da9c171..4ece54cc3f09e58840ba27e1362282055a15b92c 100644
--- a/entity/MosaicoTemplate_entity/entityfields/copytemplate/onActionProcess.js
+++ b/entity/MosaicoTemplate_entity/entityfields/copytemplate/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
 var params = {
-    "CopyMosaicoTemplateIdParam" : vars.get("$field.MOSAICOTEMPLATEID")
+    "CopyMosaicoTemplateIdParam": vars.get("$field.MOSAICOTEMPLATEID")
 };
-neon.openContext("MosaicoTemplate", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("MosaicoTemplate", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/MosaicoTemplate_entity/entityfields/newdocumenttemplate/onActionProcess.js b/entity/MosaicoTemplate_entity/entityfields/newdocumenttemplate/onActionProcess.js
index 83ccf0f0600933f88a9acef672285f3d705f648b..6ccdb371e719624a72a4998f10502b423080b081 100644
--- a/entity/MosaicoTemplate_entity/entityfields/newdocumenttemplate/onActionProcess.js
+++ b/entity/MosaicoTemplate_entity/entityfields/newdocumenttemplate/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
 var params = {
-    "CreateFromMosaicoTemplateId_param" : vars.get("$field.MOSAICOTEMPLATEID")
+    "CreateFromMosaicoTemplateId_param": vars.get("$field.MOSAICOTEMPLATEID")
 };
-neon.openContext("DocumentTemplate", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("DocumentTemplate", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js b/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js
index d71f4187a27a06b8cd729143f27d7c6ecab4ee3a..84274a5e3b8cb57d4589f678de593a22c2dc25f1 100644
--- a/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js
+++ b/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.result");
 import("system.neon");
 import("system.vars");
@@ -28,6 +29,7 @@ if (vars.exists("$sys.selection") && vars.getString("$sys.selection"))
             "RelationTypes_param" : vars.get("$field.OBJECTRELATIONTYPEID")
         };
 
-        neon.openContext("ObjectTree", "ObjectTreeEdit_view", null, neon.OPERATINGSTATE_NEW, params);
+        var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+        neon.openContextWithRecipe("ObjectTree", "ObjectTreeEdit_view", neon.OPERATINGSTATE_NEW, recipe);
     }
-}
\ No newline at end of file
+}
diff --git a/entity/Observation_entity/entityfields/filteractions/children/adddependency/onActionProcess.js b/entity/Observation_entity/entityfields/filteractions/children/adddependency/onActionProcess.js
index 3f1d0c11b35d36ecaf864732aac6a84ee3dc449c..be05a770a0d8cc264d97360b5839cc83ee6fb643 100644
--- a/entity/Observation_entity/entityfields/filteractions/children/adddependency/onActionProcess.js
+++ b/entity/Observation_entity/entityfields/filteractions/children/adddependency/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.entities");
 import("Observation_lib");
@@ -5,9 +6,11 @@ import("system.neon");
 
 let selectedUIDs = vars.get("$sys.selection");
 
-if (selectedUIDs.length === 1){
-    let params = {
-        "Observation_id_param" : selectedUIDs[0]
-    }
-    neon.openContext("Observation", "ObservationEdit_view", null, neon.OPERATINGSTATE_NEW, params);
-}
\ No newline at end of file
+if (selectedUIDs.length === 1)
+{
+    var params = {
+        "Observation_id_param": selectedUIDs[0]
+    };
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Observation", "ObservationEdit_view", neon.OPERATINGSTATE_NEW, recipe);
+}
diff --git a/entity/Offer_entity/entityfields/approveoffer/onActionProcess.js b/entity/Offer_entity/entityfields/approveoffer/onActionProcess.js
index 4c386d3779ff76da939bd8e54d01b4d3f1c662a8..198c72b1d39bf0bcb9c8a052f9b32021e119d1bc 100644
--- a/entity/Offer_entity/entityfields/approveoffer/onActionProcess.js
+++ b/entity/Offer_entity/entityfields/approveoffer/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Employee_lib");
 import("Workflow_lib");
 import("system.neon");
@@ -10,4 +11,5 @@ var taskId = WorkflowUtils.getTaskId(offerId, ContextUtils.getCurrentContextId()
 
 newWhere("OFFER.OFFERID", offerId).updateFields({"ACTIONUSER" : EmployeeUtils.getCurrentContactId()});
 
-neon.openContext("WorkflowTask", "WorkflowTaskForm_view", [taskId], neon.OPERATINGSTATE_EDIT, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([taskId]).toString();
+neon.openContextWithRecipe("WorkflowTask", "WorkflowTaskForm_view", neon.OPERATINGSTATE_EDIT, recipe);
diff --git a/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js b/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js
index 02f67ef9c37049f446df6879107ff67b6032e91e..eaa2f3dbdfd7e3f65205bbea3c1bcc13bccf81ab 100644
--- a/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js
+++ b/entity/Offer_entity/entityfields/newofferversion/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 import("Offer_lib");
@@ -17,5 +18,6 @@ var params = {
     "OfferDeliveryTerm_param" : vars.get("$field.DELIVERYTERMS"),
     "OfferPaymentTerm_param" : vars.get("$field.PAYMENTTERMS"),
     "Discount_param": vars.get("$field.DISCOUNT")
-}
-neon.openContext("Offer", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+};
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("Offer", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Order_entity/entityfields/setdunning/onActionProcess.js b/entity/Order_entity/entityfields/setdunning/onActionProcess.js
index b105ff8dff23e2633bd9e529262c3f6d6f06d650..4e39e4b485107ad04c60b073de8214207a78763a 100644
--- a/entity/Order_entity/entityfields/setdunning/onActionProcess.js
+++ b/entity/Order_entity/entityfields/setdunning/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("Order", "OrderDunning_view", [vars.get("$field.SALESORDERID")], neon.OPERATINGSTATE_EDIT, null);
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$field.SALESORDERID")]);
+neon.openContextWithRecipe("Order", "OrderDunning_view", neon.OPERATINGSTATE_EDIT, recipe.toString());
diff --git a/entity/Order_entity/entityfields/setpaid/onActionProcess.js b/entity/Order_entity/entityfields/setpaid/onActionProcess.js
index 0c8acb980e727787e348ed099785198288ecbcbb..093a9a2a9ccfc208214b67a5bde456a8e7002773 100644
--- a/entity/Order_entity/entityfields/setpaid/onActionProcess.js
+++ b/entity/Order_entity/entityfields/setpaid/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("Order", "OrderPaid_view", [vars.get("$field.SALESORDERID")], neon.OPERATINGSTATE_EDIT, null);
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$field.SALESORDERID")]);
+neon.openContextWithRecipe("Order", "OrderPaid_view", neon.OPERATINGSTATE_EDIT, recipe.toString());
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index c0af0bf9d002c3140ff77a34453747e6e6945dfb..d6d327120e92f75271b7bc3a65b7524c2056b175 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -213,7 +213,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/communications/children/objectrowid_param/valueProcess.js</valueProcess>
           <expose v="false" />
         </entityParameter>
         <entityParameter>
@@ -299,7 +299,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/phonecommunications/children/objectrowid_param/valueProcess.js</valueProcess>
           <expose v="false" />
         </entityParameter>
       </children>
@@ -314,7 +314,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/emailcommunications/children/objectrowid_param/valueProcess.js</valueProcess>
           <expose v="false" />
         </entityParameter>
       </children>
diff --git a/entity/BulkMailRecipient_entity/entityfields/emailadresses/children/contactid_param/valueProcess.js b/entity/Organisation_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
similarity index 52%
rename from entity/BulkMailRecipient_entity/entityfields/emailadresses/children/contactid_param/valueProcess.js
rename to entity/Organisation_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
index ef0d5bcac51027b862291e5abd61c0c05773a8df..e150961ba9714738904f3c419857f981f0601d6b 100644
--- a/entity/BulkMailRecipient_entity/entityfields/emailadresses/children/contactid_param/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
@@ -1,4 +1,4 @@
-import("system.vars");
 import("system.result");
+import("system.vars");
 
-result.string(vars.get("$field.CONTACT_ID"));
\ No newline at end of file
+result.string(vars.get("$field.CONTACTID"));
diff --git a/entity/Organisation_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js b/entity/Organisation_entity/entityfields/emailcommunications/children/objectrowid_param/valueProcess.js
similarity index 52%
rename from entity/Organisation_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js
rename to entity/Organisation_entity/entityfields/emailcommunications/children/objectrowid_param/valueProcess.js
index 70a1c0fcc1293fa4bf37109294829055704eeaea..e150961ba9714738904f3c419857f981f0601d6b 100644
--- a/entity/Organisation_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/emailcommunications/children/objectrowid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.result");
 import("system.vars");
 
-result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
+result.string(vars.get("$field.CONTACTID"));
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addattributetoselection/onActionProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addattributetoselection/onActionProcess.js
index eab6cf6af945d1665311b84d3cc88f1109548c46..2d29f92c98b830345433aaed533aa92f01bc1bee 100644
--- a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addattributetoselection/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addattributetoselection/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.translate");
 import("system.neon");
 import("Context_lib");
@@ -23,4 +24,5 @@ var params = {
     "ContextTitlePlural_param": translate.text("Companies")
 }
 
-neon.openContext("AddAttributesToSelection", "AddAttributesToSelectionEdit_view", null, neon.OPERATINGSTATE_NEW, params, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("AddAttributesToSelection", "AddAttributesToSelectionEdit_view", neon.OPERATINGSTATE_NEW, recipe, null);
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addplanningtoorganisations/onActionProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addplanningtoorganisations/onActionProcess.js
index 4015c373ea1b0e8eaec6b01b545bcfa496111c96..556909bd654375c88cb7134914412c38ed67bd78 100644
--- a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addplanningtoorganisations/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addplanningtoorganisations/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
@@ -13,5 +14,5 @@ else
     params["OrganisationsWithFilter_param"] = JSON.stringify(vars.get("$sys.filter"));
 }
 
-
-neon.openContext("PlanningAddToOrganisations", "PlanningAddToOrganisations_view", null, neon.OPERATINGSTATE_NEW, params);
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("PlanningAddToOrganisations", "PlanningAddToOrganisations_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/openturnover/onActionProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/openturnover/onActionProcess.js
index 369a9d04fef2289bb2365e8ca9569c95ecb0783a..1fecb60aca4a7d031e13a801aa6fc6933cebd4e1 100644
--- a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/openturnover/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/openturnover/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("Context_lib");
 import("FilterViewAction_lib");
@@ -19,4 +20,5 @@ var params = {
     "ContactIds_param": JSON.stringify(contactIds)
 };
 
-neon.openContext("Turnover", "TurnoverDynamicMultiDataChartOrganisationGrouping_view", null, neon.OPERATINGSTATE_SEARCH, params, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("Turnover", "TurnoverDynamicMultiDataChartOrganisationGrouping_view", neon.OPERATINGSTATE_SEARCH, recipe, null);
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js
index 2b04867cc90fd72a300747605800b32664d4b5b4..fed000e33b7f523ee48cc36b6dd33bd858a6459d 100644
--- a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js
@@ -1,9 +1,11 @@
+import("system.neonFilter");
 import("Context_lib");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("MarketingWorkflowLauncher", "MarketingWorkflowLauncherEdit_view", null, neon.OPERATINGSTATE_VIEW, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "ObjectIds_param": JSON.stringify(vars.get("$sys.selection")),
     "ObjectFilter_param": JSON.stringify(vars.get("$sys.filter")),
     "ObjectType_param": ContextUtils.getCurrentContextId()
-});
\ No newline at end of file
+}).toString();
+neon.openContextWithRecipe("MarketingWorkflowLauncher", "MarketingWorkflowLauncherEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js b/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js
index 0c4be0c71b604e080efc25c139a1b1af45c3c382..53ed87c9b15afc275839ce678c853797428818da 100644
--- a/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.calendars");
 import("system.vars");
 import("system.neon");
@@ -19,5 +20,5 @@ var params = {
                                                             undefined, undefined, undefined, undefined))
 };
 
-neon.openContext("Appointment", "AppointmentEdit_view", null, neon.OPERATINGSTATE_NEW, params);
-
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("Appointment", "AppointmentEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Organisation_entity/entityfields/newsupportticket/onActionProcess.js b/entity/Organisation_entity/entityfields/newsupportticket/onActionProcess.js
deleted file mode 100644
index 17dc629c2371efc399be5f7d143f3533fae661e1..0000000000000000000000000000000000000000
--- a/entity/Organisation_entity/entityfields/newsupportticket/onActionProcess.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.vars");
-import("Ticket_lib");
-
-
-TicketUtils.openNewSupportticketWithLinks( [["Organisation", vars.get( "$field.CONTACTID")]]);
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js b/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js
index 3c74f21974a25e4f2437b5721c8cc56fe1a93548..7e6b790afe697fa36dd1e5e2717fdf52f183309a 100644
--- a/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
@@ -7,4 +8,5 @@ params["NoVisitPlanEmployeeWeek_param"] = true;
 params["ContactId_param"] = vars.get("$field.CONTACTID");
 params["OrganisationId_param"] = vars.get("$field.CONTACTID");
 
-neon.openContext("VisitPlanEntry", "VisitPlanEntryEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("VisitPlanEntry", "VisitPlanEntryEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js b/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js
index 1ac12a1242e4fb78d2c686a05f7df8dfbddeb361..e01289015ce2401af2d3ea4a8df0ecc3eb1093cc 100644
--- a/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js
@@ -1,8 +1,9 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
 var params = {};
-
 params["ContactId_param"] = vars.getString("$field.CONTACTID");
 
-neon.openContext("VisitRecommendation", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("VisitRecommendation", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Organisation_entity/entityfields/openaroundlocation/onActionProcess.js b/entity/Organisation_entity/entityfields/openaroundlocation/onActionProcess.js
index 3195ea511537f5489d464785e31280bae8a33044..3e2ced63f15eca2ae1922bc40cfb77666db03ba6 100644
--- a/entity/Organisation_entity/entityfields/openaroundlocation/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/openaroundlocation/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.entities");
 import("system.vars");
 import("system.neon");
@@ -11,4 +12,5 @@ var params = {
     LocationLon_param: lon
 }
 
-neon.openContext("AroundLocation", "AroundOrganisationLocation_view", null, null, params, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("AroundLocation", "AroundOrganisationLocation_view", null, recipe, null);
diff --git a/entity/Organisation_entity/entityfields/openclassificationoverview/onActionProcess.js b/entity/Organisation_entity/entityfields/openclassificationoverview/onActionProcess.js
index 967f69ce8d6c830280a6d3f610a64beefb0a3eb3..478104be5318a23e3145b4233186b56416288404 100644
--- a/entity/Organisation_entity/entityfields/openclassificationoverview/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/openclassificationoverview/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("system.neon");
 import("ClassificationUpdate_lib");
 import("system.vars");
 
 var classificationData = ClassificationUtils.executeUpdating(vars.get("$field.CONTACTID"), "Organisation");
 
-neon.openContext("Classification", "ClassificationTree_view", null, neon.OPERATINGSTATE_SEARCH, {"ClassificationContent_param": classificationData["outputValue"]}, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({"ClassificationContent_param": classificationData["outputValue"]});
+neon.openContextWithRecipe("Classification", "ClassificationTree_view", neon.OPERATINGSTATE_SEARCH, recipe.toString(), null);
diff --git a/entity/Organisation_entity/entityfields/openeditdefaultsview/onActionProcess.js b/entity/Organisation_entity/entityfields/openeditdefaultsview/onActionProcess.js
index 9e73af5ae77c715d5914cf5e7d3fd00bcfbc9f94..e7c4ef1b2ca081ae3ca7babf5f43298c0328e9f7 100644
--- a/entity/Organisation_entity/entityfields/openeditdefaultsview/onActionProcess.js
+++ b/entity/Organisation_entity/entityfields/openeditdefaultsview/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("Organisation", "OrganisationEditDefaults_view", [vars.get("$sys.uid")], neon.OPERATINGSTATE_EDIT, null); 
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$sys.uid")]).toString();
+neon.openContextWithRecipe("Organisation", "OrganisationEditDefaults_view", neon.OPERATINGSTATE_EDIT, recipe); 
diff --git a/entity/Organisation_entity/entityfields/communications/children/contactid_param/valueProcess.js b/entity/Organisation_entity/entityfields/phonecommunications/children/objectrowid_param/valueProcess.js
similarity index 52%
rename from entity/Organisation_entity/entityfields/communications/children/contactid_param/valueProcess.js
rename to entity/Organisation_entity/entityfields/phonecommunications/children/objectrowid_param/valueProcess.js
index 70a1c0fcc1293fa4bf37109294829055704eeaea..e150961ba9714738904f3c419857f981f0601d6b 100644
--- a/entity/Organisation_entity/entityfields/communications/children/contactid_param/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/phonecommunications/children/objectrowid_param/valueProcess.js
@@ -1,4 +1,4 @@
 import("system.result");
 import("system.vars");
 
-result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
+result.string(vars.get("$field.CONTACTID"));
diff --git a/entity/PermissionCalendar_entity/entityfields/addactions/children/receivenewdepartmentpermissiondealteraction/onActionProcess.js b/entity/PermissionCalendar_entity/entityfields/addactions/children/receivenewdepartmentpermissiondealteraction/onActionProcess.js
index 78b952ce03b4c6289a040b97b92619a86fa290c7..35cb03bcc1767b862144667471e0b171d36b88d2 100644
--- a/entity/PermissionCalendar_entity/entityfields/addactions/children/receivenewdepartmentpermissiondealteraction/onActionProcess.js
+++ b/entity/PermissionCalendar_entity/entityfields/addactions/children/receivenewdepartmentpermissiondealteraction/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("PermissionCalendar_lib");
 import("system.vars");
@@ -6,4 +7,5 @@ import("system.neon");
 var params = {};
 params["PermissionDealerType_param"] = $KeywordRegistry.permissionCalendarType$department();
 params["PermissionProcurer_param"] = vars.get("$param.PermissionProcurer_param");
-neon.openContext("PermissionCalendar", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("PermissionCalendar", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/PermissionCalendar_entity/entityfields/addactions/children/receivenewuserpermissiondealeraction/onActionProcess.js b/entity/PermissionCalendar_entity/entityfields/addactions/children/receivenewuserpermissiondealeraction/onActionProcess.js
index 0aee6ca71f2e5395232268d8d5db5ac0b87bcdcc..8d13cbfdbf525933a12d4b190d18912997e50c57 100644
--- a/entity/PermissionCalendar_entity/entityfields/addactions/children/receivenewuserpermissiondealeraction/onActionProcess.js
+++ b/entity/PermissionCalendar_entity/entityfields/addactions/children/receivenewuserpermissiondealeraction/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("PermissionCalendar_lib");
 import("system.vars");
@@ -6,4 +7,5 @@ import("system.neon");
 var params = {};
 params["PermissionDealerType_param"] = $KeywordRegistry.permissionCalendarType$user();
 params["PermissionProcurer_param"] = vars.get("$param.PermissionProcurer_param");
-neon.openContext("PermissionCalendar", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("PermissionCalendar", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewdepartmentpermissionprocureraction/onActionProcess.js b/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewdepartmentpermissionprocureraction/onActionProcess.js
index 1d2df49b6706814050016064d6cdcc63a551f945..24e5da892821ed0853cb5a3d91927aa542332a2b 100644
--- a/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewdepartmentpermissionprocureraction/onActionProcess.js
+++ b/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewdepartmentpermissionprocureraction/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("PermissionCalendar_lib");
 import("system.vars");
@@ -6,4 +7,5 @@ import("system.neon");
 var params = {};
 params["PermissionProcurerType_param"] = $KeywordRegistry.permissionCalendarType$department();
 params["PermissionDealer_param"] = vars.get("$param.PermissionDealer_param");
-neon.openContext("PermissionCalendar", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("PermissionCalendar", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewuserpermissionprocureraction/onActionProcess.js b/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewuserpermissionprocureraction/onActionProcess.js
index f2036f9dd03482fbcad1be27e33aa8ea0b39c2ae..e12a57d94de60102a807b409be3777c9c4089934 100644
--- a/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewuserpermissionprocureraction/onActionProcess.js
+++ b/entity/PermissionCalendar_entity/entityfields/addactionsreverse/children/addnewuserpermissionprocureraction/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("PermissionCalendar_lib");
 import("system.vars");
@@ -6,4 +7,5 @@ import("system.neon");
 var params = {};
 params["PermissionProcurerType_param"] = $KeywordRegistry.permissionCalendarType$user();
 params["PermissionDealer_param"] = vars.get("$param.PermissionDealer_param");
-neon.openContext("PermissionCalendar", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("PermissionCalendar", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index 057d30016a75808bf365324c215ef214b43c29ea..369578612adbfa84ad93d7eb5d33423af2c17960 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -210,7 +210,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/communications/children/objectrowid_param/valueProcess.js</valueProcess>
           <expose v="false" />
           <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry.
                         Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
@@ -407,7 +407,6 @@
       <name>STANDARD_PHONE_COMMUNICATION</name>
       <title>Phone</title>
       <consumer>PhoneCommunications</consumer>
-      <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/standard_phone_communication/displayValueProcess.js</displayValueProcess>
       <onValueChange>%aditoprj%/entity/Person_entity/entityfields/standard_phone_communication/onValueChange.js</onValueChange>
     </entityField>
     <entityConsumer>
@@ -421,7 +420,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/phonecommunications/children/objectrowid_param/valueProcess.js</valueProcess>
           <expose v="false" />
           <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry.
                         Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
@@ -443,7 +442,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/Person_entity/entityfields/emailcommunications/children/objectrowid_param/valueProcess.js</valueProcess>
           <expose v="false" />
           <description>This parameter is used for specifing a related &amp;quot;CONTACTID&amp;quot; to a COMMUNICATION-entry.
                         Usually this is used for filtering COMMUNICATION-entries by a specified contact or creating a new entry that is related to a contact.</description>
diff --git a/entity/Person_entity/entityfields/communications/children/contactid_param/valueProcess.js b/entity/Person_entity/entityfields/communications/children/contactid_param/valueProcess.js
deleted file mode 100644
index 70a1c0fcc1293fa4bf37109294829055704eeaea..0000000000000000000000000000000000000000
--- a/entity/Person_entity/entityfields/communications/children/contactid_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("system.vars");
-
-result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/communications/children/objectrowid_param/valueProcess.js b/entity/Person_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e150961ba9714738904f3c419857f981f0601d6b
--- /dev/null
+++ b/entity/Person_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.CONTACTID"));
diff --git a/entity/Person_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js b/entity/Person_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js
deleted file mode 100644
index 70a1c0fcc1293fa4bf37109294829055704eeaea..0000000000000000000000000000000000000000
--- a/entity/Person_entity/entityfields/emailcommunications/children/contactid_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("system.vars");
-
-result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/emailcommunications/children/objectrowid_param/valueProcess.js b/entity/Person_entity/entityfields/emailcommunications/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e150961ba9714738904f3c419857f981f0601d6b
--- /dev/null
+++ b/entity/Person_entity/entityfields/emailcommunications/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.CONTACTID"));
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/addattributetoselection/onActionProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/addattributetoselection/onActionProcess.js
index f4ab243e9813a5b1b186a161f8889a8cfef4d4be..04b7a494c5e4980d4f63a0473729283b99c6f3ce 100644
--- a/entity/Person_entity/entityfields/filterviewactiongroup/children/addattributetoselection/onActionProcess.js
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/addattributetoselection/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.translate");
 import("system.neon");
 import("Context_lib");
@@ -21,6 +22,7 @@ var params = {
     "ContextId_param": currentContext,
     "Datalength_param": ids.length,
     "ContextTitlePlural_param": translate.text("Contacts")
-}
+};
 
-neon.openContext("AddAttributesToSelection", "AddAttributesToSelectionEdit_view", null, neon.OPERATINGSTATE_NEW, params, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("AddAttributesToSelection", "AddAttributesToSelectionEdit_view", neon.OPERATINGSTATE_NEW, recipe, null);
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js
index 2b04867cc90fd72a300747605800b32664d4b5b4..fed000e33b7f523ee48cc36b6dd33bd858a6459d 100644
--- a/entity/Person_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js
@@ -1,9 +1,11 @@
+import("system.neonFilter");
 import("Context_lib");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("MarketingWorkflowLauncher", "MarketingWorkflowLauncherEdit_view", null, neon.OPERATINGSTATE_VIEW, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "ObjectIds_param": JSON.stringify(vars.get("$sys.selection")),
     "ObjectFilter_param": JSON.stringify(vars.get("$sys.filter")),
     "ObjectType_param": ContextUtils.getCurrentContextId()
-});
\ No newline at end of file
+}).toString();
+neon.openContextWithRecipe("MarketingWorkflowLauncher", "MarketingWorkflowLauncherEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/Person_entity/entityfields/newappointment/onActionProcess.js b/entity/Person_entity/entityfields/newappointment/onActionProcess.js
index 703676cc9ebc97f75fa7af44bd667ec938349ef6..43dac3fcdd40a1db33871751ba75bf64d16a9446 100644
--- a/entity/Person_entity/entityfields/newappointment/onActionProcess.js
+++ b/entity/Person_entity/entityfields/newappointment/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.calendars");
 import("system.vars");
 import("system.neon");
@@ -23,4 +24,5 @@ var params = {
                                                             undefined, undefined, undefined, undefined))
 };
 
-neon.openContext("Appointment", "AppointmentEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("Appointment", "AppointmentEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Person_entity/entityfields/newsupportticket/onActionProcess.js b/entity/Person_entity/entityfields/newsupportticket/onActionProcess.js
index 9ce97cf9edc967900a590b6fb95efbbd7efa9c08..e0620a1c11284abda0533b55da6af95bb530b180 100644
--- a/entity/Person_entity/entityfields/newsupportticket/onActionProcess.js
+++ b/entity/Person_entity/entityfields/newsupportticket/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
@@ -5,4 +6,5 @@ var obj_links = {
     TaskRequestorContactId_param: vars.get( "$field.CONTACTID"),
     "PresetLinks_param":JSON.stringify([["Person",vars.get("$field.CONTACTID")]]) 
 };
-neon.openContext("SupportTicket", "SupportTicketEdit_view", null, neon.OPERATINGSTATE_NEW, obj_links);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(obj_links).toString();
+neon.openContextWithRecipe("SupportTicket", "SupportTicketEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js b/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js
index 3c74f21974a25e4f2437b5721c8cc56fe1a93548..7e6b790afe697fa36dd1e5e2717fdf52f183309a 100644
--- a/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js
+++ b/entity/Person_entity/entityfields/newvisitplanentry/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
@@ -7,4 +8,5 @@ params["NoVisitPlanEmployeeWeek_param"] = true;
 params["ContactId_param"] = vars.get("$field.CONTACTID");
 params["OrganisationId_param"] = vars.get("$field.CONTACTID");
 
-neon.openContext("VisitPlanEntry", "VisitPlanEntryEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("VisitPlanEntry", "VisitPlanEntryEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Person_entity/entityfields/newvisitrecommendation/onActionProcess.js b/entity/Person_entity/entityfields/newvisitrecommendation/onActionProcess.js
index 20eba0e1aca21c0349ba3eb04313ac6985330162..986f5f0c536d21733ee6fad630282692b9a2d90b 100644
--- a/entity/Person_entity/entityfields/newvisitrecommendation/onActionProcess.js
+++ b/entity/Person_entity/entityfields/newvisitrecommendation/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.logging");
 import("Sql_lib");
 import("system.neon");
@@ -12,4 +13,5 @@ var orgContactId = newSelect("CONTACT.CONTACTID").from("CONTACT").where("CONTACT
 params["ContactIdPerson_param"] = personContactId;
 params["ContactId_param"] = orgContactId;
 
-neon.openContext("VisitRecommendation", null, null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("VisitRecommendation", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Person_entity/entityfields/openeditdefaultsview/onActionProcess.js b/entity/Person_entity/entityfields/openeditdefaultsview/onActionProcess.js
index cc435ca0111d467edb0366262b8c29b82f504f7b..1a97710a4391981986fb59ca11c4d690caaa4f22 100644
--- a/entity/Person_entity/entityfields/openeditdefaultsview/onActionProcess.js
+++ b/entity/Person_entity/entityfields/openeditdefaultsview/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
-neon.openContext("Person", "PersonEditDefaults_view", [vars.get("$field.CONTACTID")], neon.OPERATINGSTATE_EDIT, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$field.CONTACTID")]);
+neon.openContextWithRecipe("Person", "PersonEditDefaults_view", neon.OPERATINGSTATE_EDIT, recipe.toString());
diff --git a/entity/Person_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js b/entity/Person_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js
deleted file mode 100644
index 70a1c0fcc1293fa4bf37109294829055704eeaea..0000000000000000000000000000000000000000
--- a/entity/Person_entity/entityfields/phonecommunications/children/contactid_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-import("system.vars");
-
-result.string(vars.get("$field.CONTACTID"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/phonecommunications/children/objectrowid_param/valueProcess.js b/entity/Person_entity/entityfields/phonecommunications/children/objectrowid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e150961ba9714738904f3c419857f981f0601d6b
--- /dev/null
+++ b/entity/Person_entity/entityfields/phonecommunications/children/objectrowid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.get("$field.CONTACTID"));
diff --git a/entity/PlanningAddToOrganisations_entity/afterSave.js b/entity/PlanningAddToOrganisations_entity/afterSave.js
index 559470208ca89a3a5a43ca4f2f8c6f06d2fd591b..2189d4d65149c8785854a792226f536573f56f46 100644
--- a/entity/PlanningAddToOrganisations_entity/afterSave.js
+++ b/entity/PlanningAddToOrganisations_entity/afterSave.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
@@ -11,4 +12,5 @@ var params = {
     "PlanningIdsAlreadyExists_param": existingPlannings
 };
 
-neon.openContext("PlanningAddToOrganisations", "PlanningAddToOrganisationOverlay_view", [uid], neon.OPERATINGSTATE_VIEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([uid]).parameters(params).toString();
+neon.openContextWithRecipe("PlanningAddToOrganisations", "PlanningAddToOrganisationOverlay_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/PlanningChangeStatusAndResponsible_entity/afterSave.js b/entity/PlanningChangeStatusAndResponsible_entity/afterSave.js
index 87b9d67c893c48c3194bc93885b0d2f983204995..69f231c7bdedf89d99b38600d1c02a5979bb5831 100644
--- a/entity/PlanningChangeStatusAndResponsible_entity/afterSave.js
+++ b/entity/PlanningChangeStatusAndResponsible_entity/afterSave.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
@@ -5,9 +6,9 @@ var orgContactId = vars.get("$param.OrganisationContactId_param");
 
 if(orgContactId)
 {
-    neon.openContext("Organisation", "OrganisationMain_view", [orgContactId], neon.OPERATINGSTATE_VIEW, null, "4c03be39-db8d-4cef-b75c-3325f70101c2");
+    neon.openContextWithRecipe("Organisation", "OrganisationMain_view", neon.OPERATINGSTATE_VIEW, neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([orgContactId]).toString(), "4c03be39-db8d-4cef-b75c-3325f70101c2");
 }
 else
 {
-    neon.openContext("Planning", "PlanningFilter_view", null, neon.OPERATINGSTATE_SEARCH, null, null);
+    neon.openContextWithRecipe("Planning", "PlanningFilter_view", neon.OPERATINGSTATE_SEARCH, neonFilter.createEntityRecordsRecipeBuilder().toString(), null);
 }
diff --git a/entity/Planning_entity/entityfields/filterviewactions/children/changeresponsible/onActionProcess.js b/entity/Planning_entity/entityfields/filterviewactions/children/changeresponsible/onActionProcess.js
index dc355adfad0f5c6dd5e131d51fb14ddadea9c051..296a2b9d5bb9b5d0068f50920041b6f4d23f67b4 100644
--- a/entity/Planning_entity/entityfields/filterviewactions/children/changeresponsible/onActionProcess.js
+++ b/entity/Planning_entity/entityfields/filterviewactions/children/changeresponsible/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
@@ -10,4 +11,5 @@ if(vars.get("$param.ContactId_param"))
     params["OrganisationContactId_param"] = vars.get("$param.ContactId_param");
 }
 
-neon.openContext("PlanningChangeStatusAndResponsible", "PlanningChangeResponsible_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("PlanningChangeStatusAndResponsible", "PlanningChangeResponsible_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Planning_entity/entityfields/filterviewactions/children/changestatus/onActionProcess.js b/entity/Planning_entity/entityfields/filterviewactions/children/changestatus/onActionProcess.js
index c3e1224d7beec61e97ade927146387bcddff6942..acda3db43b4e3ee8bc038787ffacab179dbff677 100644
--- a/entity/Planning_entity/entityfields/filterviewactions/children/changestatus/onActionProcess.js
+++ b/entity/Planning_entity/entityfields/filterviewactions/children/changestatus/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.vars");
 import("system.neon");
 
@@ -10,4 +11,5 @@ if(vars.get("$param.ContactId_param"))
     params["OrganisationContactId_param"] = vars.get("$param.ContactId_param");
 }
 
-neon.openContext("PlanningChangeStatusAndResponsible", "PlanningChangeStatus_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("PlanningChangeStatusAndResponsible", "PlanningChangeStatus_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js b/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js
index c599a0919963ad333599a18e1f2f6985a706f51b..36191fd29b8b752fefc0986da1bc82b8d6b56dec 100644
--- a/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js
+++ b/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
@@ -13,6 +14,7 @@ if (vars.exists("$sys.selectionRows") && vars.get("$sys.selectionRows"))
             "CurrentProductId_param" : productId
         };
 
-        neon.openContext("Prod2prod", "Prod2ProdEdit_view", null, neon.OPERATINGSTATE_NEW, params);
+        var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+        neon.openContextWithRecipe("Prod2prod", "Prod2ProdEdit_view", neon.OPERATINGSTATE_NEW, recipe);
     }
 }
\ No newline at end of file
diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod
index 5c71823a29dcd605c022b835bbef23f6979df02f..39548637b30282bab8ccce72193eb56f79fd7ed0 100644
--- a/entity/Product_entity/Product_entity.aod
+++ b/entity/Product_entity/Product_entity.aod
@@ -665,7 +665,7 @@
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>STATUS_TILEVIEW.displayValue</name>
-          <expression>%aditoprj%/entity/Product_entity/recordcontainers/db/recordfieldmappings/statustileview.displayvalue/expression.js</expression>
+          <expression>%aditoprj%/entity/Product_entity/recordcontainers/db/recordfieldmappings/status_tileview.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>ADVERTISING_TILEVIEW.value</name>
diff --git a/entity/Product_entity/entityfields/addtooffer/onActionProcess.js b/entity/Product_entity/entityfields/addtooffer/onActionProcess.js
index 1e0d4dfbc0c56000930864c2a81fe102fcb2583b..d69c942707e4cb699a08bbba4742294fd8ad707b 100644
--- a/entity/Product_entity/entityfields/addtooffer/onActionProcess.js
+++ b/entity/Product_entity/entityfields/addtooffer/onActionProcess.js
@@ -1,8 +1,9 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
 var params = JSON.parse(vars.get("$param.OrderOfferInformations_param"));
-
 params["ProductId_param"] = vars.get("$field.PRODUCTID");
 
-neon.openContext("OfferItem", "OfferItemEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("OfferItem", "OfferItemEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Product_entity/entityfields/addtoorder/onActionProcess.js b/entity/Product_entity/entityfields/addtoorder/onActionProcess.js
index 9e9d45e347cf3867e9165e75c7cdc2cb9253ae19..0ac829902a6c3b8843ef58196fecc84778c68d74 100644
--- a/entity/Product_entity/entityfields/addtoorder/onActionProcess.js
+++ b/entity/Product_entity/entityfields/addtoorder/onActionProcess.js
@@ -1,9 +1,9 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
 var params = JSON.parse(vars.get("$param.OrderOfferInformations_param"));
-
 params["ProductId_param"] = vars.get("$field.PRODUCTID");
 
-
-neon.openContext("OrderItem", "OrderItemEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("OrderItem", "OrderItemEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/Product_entity/recordcontainers/db/recordfieldmappings/statustileview.displayvalue/expression.js b/entity/Product_entity/recordcontainers/db/recordfieldmappings/status_tileview.displayvalue/expression.js
similarity index 88%
rename from entity/Product_entity/recordcontainers/db/recordfieldmappings/statustileview.displayvalue/expression.js
rename to entity/Product_entity/recordcontainers/db/recordfieldmappings/status_tileview.displayvalue/expression.js
index f88c2129f76173abf61f5d2945b8eeff30191153..cd6898dc31b1ed826791f4165af7b8c3de893024 100644
--- a/entity/Product_entity/recordcontainers/db/recordfieldmappings/statustileview.displayvalue/expression.js
+++ b/entity/Product_entity/recordcontainers/db/recordfieldmappings/status_tileview.displayvalue/expression.js
@@ -2,4 +2,4 @@ import("system.translate");
 import("Sql_lib");
 import("system.result");
 
-result.string(SqlBuilder.caseWhen(newWhere("PRODUCT.STATUS", 1)).thenString(translate.text("Active")).elseString(translate.text("Inactive")).toString());
\ No newline at end of file
+result.string(SqlBuilder.caseWhen(newWhere("PRODUCT.STATUS", 1)).thenString(translate.text("Active")).elseString(translate.text("Inactive")).toString());
diff --git a/entity/QuickEntry_entity/QuickEntry_entity.aod b/entity/QuickEntry_entity/QuickEntry_entity.aod
index d46fb787fa7dd1614b3e7e3942eeb5238d92f773..c61a6fdda43a6cb6197cd62603f5a858ada4c8f7 100644
--- a/entity/QuickEntry_entity/QuickEntry_entity.aod
+++ b/entity/QuickEntry_entity/QuickEntry_entity.aod
@@ -32,7 +32,7 @@
       <children>
         <entityParameter>
           <name>ObjectRowId_param</name>
-          <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/communications/children/contactid_param/valueProcess.js</valueProcess>
+          <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/communications/children/objectrowid_param/valueProcess.js</valueProcess>
         </entityParameter>
         <entityParameter>
           <name>ObjectType_param</name>
diff --git a/entity/QuickEntry_entity/entityfields/communications/children/contactid_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
similarity index 92%
rename from entity/QuickEntry_entity/entityfields/communications/children/contactid_param/valueProcess.js
rename to entity/QuickEntry_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
index d7d5633b2d5d7990ad38c51ac48c75ae78ede5c5..3bbe46dc3e9f786951056f061daf65392dd84d57 100644
--- a/entity/QuickEntry_entity/entityfields/communications/children/contactid_param/valueProcess.js
+++ b/entity/QuickEntry_entity/entityfields/communications/children/objectrowid_param/valueProcess.js
@@ -9,4 +9,4 @@ if(Utils.toBoolean(vars.get("$field.onlyPerson")))
     contactId = JSON.parse(vars.get("$param.personContactIds_param"))[0];
 }
 
-result.string(contactId);
\ No newline at end of file
+result.string(contactId);
diff --git a/entity/QuickEntry_entity/entityfields/supporttickets/children/returnempty_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/supporttickets/children/returnempty_param/valueProcess.js
deleted file mode 100644
index b691020ed6224d159383287eb2b841b9d5d225bd..0000000000000000000000000000000000000000
--- a/entity/QuickEntry_entity/entityfields/supporttickets/children/returnempty_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.result");
-
-
-result.string( true);
\ No newline at end of file
diff --git a/entity/QuickEntry_entity/entityfields/supporttickets/children/taskrequestorcontactid_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/supporttickets/children/taskrequestorcontactid_param/valueProcess.js
deleted file mode 100644
index 16c85500b5355a72548030867e3d300661e9d4aa..0000000000000000000000000000000000000000
--- a/entity/QuickEntry_entity/entityfields/supporttickets/children/taskrequestorcontactid_param/valueProcess.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import("system.vars");
-import("system.result");
-
-result.string(vars.get("$field.UID"));
\ No newline at end of file
diff --git a/entity/SalesprojectAnalyses_entity/entityfields/openforecast/onActionProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/openforecast/onActionProcess.js
index 9fefbbb1bd449bb98340f8e877b522be8474e48e..aa1d78f50b1a8f0de1ac3f6639254aaeecb7a328 100644
--- a/entity/SalesprojectAnalyses_entity/entityfields/openforecast/onActionProcess.js
+++ b/entity/SalesprojectAnalyses_entity/entityfields/openforecast/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Turnover", null, null, neon.OPERATINGSTATE_SEARCH, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().toString();
+neon.openContextWithRecipe("Turnover", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SalesprojectAnalyses_entity/entityfields/openforecastweighted/onActionProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/openforecastweighted/onActionProcess.js
index 9fefbbb1bd449bb98340f8e877b522be8474e48e..aa1d78f50b1a8f0de1ac3f6639254aaeecb7a328 100644
--- a/entity/SalesprojectAnalyses_entity/entityfields/openforecastweighted/onActionProcess.js
+++ b/entity/SalesprojectAnalyses_entity/entityfields/openforecastweighted/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Turnover", null, null, neon.OPERATINGSTATE_SEARCH, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().toString();
+neon.openContextWithRecipe("Turnover", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SalesprojectAnalyses_entity/entityfields/openplanning/onActionProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/openplanning/onActionProcess.js
index 9fefbbb1bd449bb98340f8e877b522be8474e48e..aa1d78f50b1a8f0de1ac3f6639254aaeecb7a328 100644
--- a/entity/SalesprojectAnalyses_entity/entityfields/openplanning/onActionProcess.js
+++ b/entity/SalesprojectAnalyses_entity/entityfields/openplanning/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Turnover", null, null, neon.OPERATINGSTATE_SEARCH, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().toString();
+neon.openContextWithRecipe("Turnover", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SalesprojectAnalyses_entity/entityfields/opensalesprojects/onActionProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/opensalesprojects/onActionProcess.js
index f4db85d3486709981abe865d0121c3d29a09c296..c12d1b5b192666cbc0c013985ca92eb361e1d7af 100644
--- a/entity/SalesprojectAnalyses_entity/entityfields/opensalesprojects/onActionProcess.js
+++ b/entity/SalesprojectAnalyses_entity/entityfields/opensalesprojects/onActionProcess.js
@@ -1,6 +1,8 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Salesproject", null, null, neon.OPERATINGSTATE_SEARCH, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "Status_param": $KeywordRegistry.salesprojectState$open()
-});
+}).toString();
+neon.openContextWithRecipe("Salesproject", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SalesprojectAnalyses_entity/entityfields/openturnover/onActionProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/openturnover/onActionProcess.js
index 9fefbbb1bd449bb98340f8e877b522be8474e48e..aa1d78f50b1a8f0de1ac3f6639254aaeecb7a328 100644
--- a/entity/SalesprojectAnalyses_entity/entityfields/openturnover/onActionProcess.js
+++ b/entity/SalesprojectAnalyses_entity/entityfields/openturnover/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Turnover", null, null, neon.OPERATINGSTATE_SEARCH, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().toString();
+neon.openContextWithRecipe("Turnover", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SalesprojectAnalyses_entity/entityfields/sentoffers/onActionProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/sentoffers/onActionProcess.js
index 90c452b6404bb557adec63073846a542c8e66e8f..9caa0e9d8a2bd4ed3ca728af69aeca75bac911f0 100644
--- a/entity/SalesprojectAnalyses_entity/entityfields/sentoffers/onActionProcess.js
+++ b/entity/SalesprojectAnalyses_entity/entityfields/sentoffers/onActionProcess.js
@@ -1,6 +1,8 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Offer", null, null, neon.OPERATINGSTATE_SEARCH, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "OfferStatus_param": $KeywordRegistry.offerStatus$sent()
-});
+}).toString();
+neon.openContextWithRecipe("Offer", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SalesprojectConversionRate_entity/entityfields/openforecast/onActionProcess.js b/entity/SalesprojectConversionRate_entity/entityfields/openforecast/onActionProcess.js
index a4f17e146fc1bc27447f0f53818616a254bcf6d1..26b98aa1fb3fe55b0819e3f501ef6d89e1bd7e6b 100644
--- a/entity/SalesprojectConversionRate_entity/entityfields/openforecast/onActionProcess.js
+++ b/entity/SalesprojectConversionRate_entity/entityfields/openforecast/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Turnover", null, null, neon.OPERATINGSTATE_SEARCH, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "ShowForecast_param": "true",
     "ShowTurnover_param": "false"
-});
+}).toString();
+neon.openContextWithRecipe("Turnover", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SalesprojectConversionRate_entity/entityfields/opensalesprojects/onActionProcess.js b/entity/SalesprojectConversionRate_entity/entityfields/opensalesprojects/onActionProcess.js
index f4db85d3486709981abe865d0121c3d29a09c296..c12d1b5b192666cbc0c013985ca92eb361e1d7af 100644
--- a/entity/SalesprojectConversionRate_entity/entityfields/opensalesprojects/onActionProcess.js
+++ b/entity/SalesprojectConversionRate_entity/entityfields/opensalesprojects/onActionProcess.js
@@ -1,6 +1,8 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Salesproject", null, null, neon.OPERATINGSTATE_SEARCH, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "Status_param": $KeywordRegistry.salesprojectState$open()
-});
+}).toString();
+neon.openContextWithRecipe("Salesproject", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SalesprojectConversionRate_entity/entityfields/openturnover/onActionProcess.js b/entity/SalesprojectConversionRate_entity/entityfields/openturnover/onActionProcess.js
index b278ec2dce925c93c0fcccbd8689f8ad68f7c781..574aa6859ac5a22ee876c1e98130434095db7d0b 100644
--- a/entity/SalesprojectConversionRate_entity/entityfields/openturnover/onActionProcess.js
+++ b/entity/SalesprojectConversionRate_entity/entityfields/openturnover/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Turnover", null, null, neon.OPERATINGSTATE_SEARCH, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "ShowForecast_param": "false",
     "ShowTurnover_param": "true"
-});
+}).toString();
+neon.openContextWithRecipe("Turnover", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SalesprojectConversionRate_entity/entityfields/sentoffers/onActionProcess.js b/entity/SalesprojectConversionRate_entity/entityfields/sentoffers/onActionProcess.js
index 90c452b6404bb557adec63073846a542c8e66e8f..9caa0e9d8a2bd4ed3ca728af69aeca75bac911f0 100644
--- a/entity/SalesprojectConversionRate_entity/entityfields/sentoffers/onActionProcess.js
+++ b/entity/SalesprojectConversionRate_entity/entityfields/sentoffers/onActionProcess.js
@@ -1,6 +1,8 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.neon");
 
-neon.openContext("Offer", null, null, neon.OPERATINGSTATE_SEARCH, {
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
     "OfferStatus_param": $KeywordRegistry.offerStatus$sent()
-});
+}).toString();
+neon.openContextWithRecipe("Offer", null, neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/Salesproject_entity/contentDescriptionProcess.js b/entity/Salesproject_entity/contentDescriptionProcess.js
index 89556fc7d2c2ca8e7ffa507ea518d47b4ea7e190..5d05ee1186b5660bd93a30cebf9b3b0dcea0c1e7 100644
--- a/entity/Salesproject_entity/contentDescriptionProcess.js
+++ b/entity/Salesproject_entity/contentDescriptionProcess.js
@@ -9,8 +9,8 @@ import("KeywordRegistry_basic");
 
 var res = [translate.text("Phase") + ": " + KeywordUtils.getViewValue($KeywordRegistry.salesprojectPhase(), vars.get("$field.PHASE")), 
            translate.text("Classification: ") + vars.get("$field.CLASSIFICATIONVALUE"),
-           translate.text("Volume") + ": " + NumberUtils.formatWithCurrency(vars.get("$field.VOLUME"), translate.text("#,##0.00"), "€"),
+           translate.text("Volume") + ": " + NumberUtils.formatWithCurrency(vars.get("$field.VOLUME"), translate.text("#,##0.00"), "\u20ac"),
            translate.text("Probability") + ": " + vars.get("$field.PROBABILITY") + "%",
            translate.text("Creation date") + ": " + datetime.toDate(vars.get("$field.DATE_NEW"), translate.text("dd.MM.yyyy"))];
 
-result.string(res.join(" | "));
\ No newline at end of file
+result.string(res.join(" | "));
diff --git a/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js b/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js
index d103f7cdf673de148a7aba47f84f7b033efdcd6c..e8e504270d00512eae08095b3ac8e97213a95eaf 100644
--- a/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js
+++ b/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js
@@ -1,7 +1,9 @@
+import("system.neonFilter");
 import("system.neon");
 import("ClassificationUpdate_lib");
 import("system.vars");
 
 var classificationData = ClassificationUtils.executeUpdating(vars.get("$field.SALESPROJECTID"), "Salesproject");
 
-neon.openContext("Classification", "ClassificationTree_view", null, neon.OPERATINGSTATE_SEARCH, {"ClassificationContent_param": classificationData["outputValue"]}, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({"ClassificationContent_param": classificationData["outputValue"]});
+neon.openContextWithRecipe("Classification", "ClassificationTree_view", neon.OPERATINGSTATE_SEARCH, recipe.toString(), null);
diff --git a/entity/SlaveAdministrationIntervall_entity/SlaveAdministrationIntervall_entity.aod b/entity/SlaveAdministrationIntervall_entity/SlaveAdministrationIntervall_entity.aod
index 9941eb285e4684819392ea35df7f07cb982e48f1..0e6f8e9f9c3b2bb44861e9328bbd7762484be473 100644
--- a/entity/SlaveAdministrationIntervall_entity/SlaveAdministrationIntervall_entity.aod
+++ b/entity/SlaveAdministrationIntervall_entity/SlaveAdministrationIntervall_entity.aod
@@ -4,6 +4,7 @@
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <grantCreate v="false" />
   <grantDelete v="false" />
+  <recordContainer>dbless</recordContainer>
   <entityFields>
     <entityProvider>
       <name>#PROVIDER</name>
diff --git a/entity/SupportTicketMultiSelect_entity/entityfields/changedata/onActionProcess.js b/entity/SupportTicketMultiSelect_entity/entityfields/changedata/onActionProcess.js
index 41ee4231cb9743c4c282d138cef7ec27294f9cb4..62f8d4a218160d0420681772982a76f1d8cc453b 100644
--- a/entity/SupportTicketMultiSelect_entity/entityfields/changedata/onActionProcess.js
+++ b/entity/SupportTicketMultiSelect_entity/entityfields/changedata/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("ActivityTask_lib");
 import("system.translate");
 import("system.tools");
@@ -63,4 +64,5 @@ newWhere("TASK.TASKID",taskIDs,SqlBuilder.IN()).updateFields(TaskfieldValues);
 newWhere("TICKET.TASK_ID",taskIDs,SqlBuilder.IN()).updateFields(TicketfieldValues);
 
 
-neon.openContext("SupportTicket", "SupportTicketFilter_view", null, neon.OPERATINGSTATE_SEARCH, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().toString();
+neon.openContextWithRecipe("SupportTicket", "SupportTicketFilter_view", neon.OPERATINGSTATE_SEARCH, recipe);
diff --git a/entity/SupportTicket_entity/entityfields/duplicateticket/onActionProcess.js b/entity/SupportTicket_entity/entityfields/duplicateticket/onActionProcess.js
index d196ed2bcd7e1aafc02046459d979b44b9abf5fa..45f7ea55378d5a61d9703d66b212d37f3c5eab4d 100644
--- a/entity/SupportTicket_entity/entityfields/duplicateticket/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/duplicateticket/onActionProcess.js
@@ -1,13 +1,13 @@
+import("system.neonFilter");
 import("Sql_lib");
 import("system.neon");
 import("system.vars");
 
 var obj_links = {
-
     PresetLinks_param :JSON.stringify([["Supportticket",vars.get("$field.TICKETID")]]),
     TicketId_param: vars.get("$field.TICKETID"),
     TicketNo_param: vars.get("$field.CODE"),
     ActionName_param: "duplicateTicket"
 };
-neon.openContext("SupportTicket", "SupportTicketEdit_view", null, neon.OPERATINGSTATE_NEW, obj_links);
-
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(obj_links).toString();
+neon.openContextWithRecipe("SupportTicket", "SupportTicketEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/SupportTicket_entity/entityfields/filteractionsgroup/children/changemultiple/onActionProcess.js b/entity/SupportTicket_entity/entityfields/filteractionsgroup/children/changemultiple/onActionProcess.js
index dcc1197652bdf6655d8cc596f9fbb21fc928046a..349eb0ebc790d8725b738e8b6005c9f83c7deceb 100644
--- a/entity/SupportTicket_entity/entityfields/filteractionsgroup/children/changemultiple/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/filteractionsgroup/children/changemultiple/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.db");
 import("system.neon");
 import("system.vars");
@@ -27,6 +28,6 @@ if(vars.exists("$sys.selectionRows"))
         "InboxIds_param": JSON.stringify(inboxIds)
     }
    
-    neon.openContext("SupportTicketMultiSelect", "SupportTicketMultiSelectEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
-    
-}
\ No newline at end of file
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("SupportTicketMultiSelect", "SupportTicketMultiSelectEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
+}
diff --git a/entity/SupportTicket_entity/entityfields/forwardticket/onActionProcess.js b/entity/SupportTicket_entity/entityfields/forwardticket/onActionProcess.js
index be96f60fe8f8bee758038e3f3078b0cec9175af0..c7188f68ba826e9b88e0d72fadb7b4d8f0a5cb79 100644
--- a/entity/SupportTicket_entity/entityfields/forwardticket/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/forwardticket/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.db");
 import("system.neon");
 import("system.vars");
@@ -29,4 +30,5 @@ else
     params["From_param"] = vars.get("$field.EMAILMAILSIGNATURE");
 }
 
-neon.openContext("ServiceEmail", "ServiceForwardEmailEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("ServiceEmail", "ServiceForwardEmailEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/SupportTicket_entity/entityfields/newletter/onActionProcess.js b/entity/SupportTicket_entity/entityfields/newletter/onActionProcess.js
index 4066bead87bcfe4070031d5094d4fac0e23416b5..7f4f12a54dd7da8343a1e788f8e360f5c52d1ac2 100644
--- a/entity/SupportTicket_entity/entityfields/newletter/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/newletter/onActionProcess.js
@@ -1,11 +1,13 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.vars");
 
 var params = {
-        "ContactId_param" : vars.get("$field.TASK_REQUESTOR_CONTACT_ID"),
-        "ComingFrom_param" : vars.get("$sys.currentcontextname"),
-        "ActionName_param" : "ServiceLetter",
-        "TicketCategory_param" : vars.get("$field.TICKETCATEGORY")
-    };
+    "ContactId_param": vars.get("$field.TASK_REQUESTOR_CONTACT_ID"),
+    "ComingFrom_param": vars.get("$sys.currentcontextname"),
+    "ActionName_param": "ServiceLetter",
+    "TicketCategory_param": vars.get("$field.TICKETCATEGORY")
+};
     
-neon.openContext("Letter", "LetterEdit_view", null, neon.OPERATINGSTATE_VIEW, params)
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("Letter", "LetterEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/SupportTicket_entity/entityfields/newnote/onActionProcess.js b/entity/SupportTicket_entity/entityfields/newnote/onActionProcess.js
index 17e7ed9b446f272035cb78b269f391350867e42e..5ca8ea1e419c0bdc8b7c6cffe06ff8bdc5a5d2ad 100644
--- a/entity/SupportTicket_entity/entityfields/newnote/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/newnote/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Context_lib");
 import("system.translate");
 import("system.datetime");
@@ -7,7 +8,7 @@ import("system.neon");
 import("system.vars");
 import("Ticket_lib")
 
-var params ={
+var params = {
     "Entrydate_param" : datetime.date(),
     "Category_param" : $KeywordRegistry.activityCategory$note(),
     "Direction_param" : $KeywordRegistry.activityDirection$internal(),
@@ -15,5 +16,7 @@ var params ={
     "Subject_param": translate.text("Note"),
     "ParentId_param": vars.get("$field.TICKETID"),
     "ParentContext_param": ContextUtils.getCurrentContextId()
-    } 
-neon.openContext("Activity", "ActivityNoteEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+};
+
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("Activity", "ActivityNoteEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/SupportTicket_entity/entityfields/newticket/onActionProcess.js b/entity/SupportTicket_entity/entityfields/newticket/onActionProcess.js
index 6c21413ab83e7106f94aef7aec9c1b7be3cde702..7a1667f3e6e0525122aefa723097978ae7aea66f 100644
--- a/entity/SupportTicket_entity/entityfields/newticket/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/newticket/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("system.neon");
 import("Ticket_lib")
 
-neon.openContext("SupportTicket", "SupportTicketEdit_view", null, neon.OPERATINGSTATE_NEW, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().toString();
+neon.openContextWithRecipe("SupportTicket", "SupportTicketEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/SupportTicket_entity/entityfields/newticketcontact/onActionProcess.js b/entity/SupportTicket_entity/entityfields/newticketcontact/onActionProcess.js
index b9de4020cf3efddc0e5b798ba33037a275181fac..628526c1cd143f5f39dea72fa0340f6f4774d229 100644
--- a/entity/SupportTicket_entity/entityfields/newticketcontact/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/newticketcontact/onActionProcess.js
@@ -1,4 +1,6 @@
+import("system.neonFilter");
 import("system.neon");
 import("Ticket_lib")
 
-neon.openContext("Person", "PersonEditServiceTicket_view", null, neon.OPERATINGSTATE_NEW, null);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().toString();
+neon.openContextWithRecipe("Person", "PersonEditServiceTicket_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js b/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js
index b6abe33312fe99408c6e0c25619889b7425cada8..7f2a733adf8f31366c1fae721660b0165554164e 100644
--- a/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Util_lib");
 import("system.translate");
 import("system.question");
@@ -122,8 +123,10 @@ if(ticketID != "")
     TicketfieldValues["DATE_EDIT_STATUS"] = vars.get("sys.date");
     newWhereIfSet("TICKET.TICKETID", vars.get( "$field.TICKETID")).updateFields(TicketfieldValues);    
     newWhereIfSet("TASK.TASKID",taskID).updateFields(TaskfieldValues);
+    
     // open Ticket
-    neon.openContext("SupportTicket", "SupportTicketMain_view", [ticketID], neon.OPERATINGSTATE_VIEW, null);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([ticketID]).toString();
+    neon.openContextWithRecipe("SupportTicket", "SupportTicketMain_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 // no Ticket available.. nothing found
 else 
diff --git a/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js b/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js
index 1b8ba2a613f47f46625ccbadb58632dbb51d4f68..ff7dbcdbbd82f65d57fa92011c24881a07dbc6aa 100644
--- a/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("system.db");
 import("system.neon");
@@ -39,4 +40,5 @@ else
     params["SenderEmail_param"] = vars.get("$field.SENDEREMAIL");
 }
 
-neon.openContext("ServiceEmail", "ServiceEmailEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("ServiceEmail", "ServiceEmailEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/SupportTicket_entity/entityfields/resubmitticket/onActionProcess.js b/entity/SupportTicket_entity/entityfields/resubmitticket/onActionProcess.js
index 54c8ced3dfe31067daefe243fa00f8935bf548ab..fd9aa7268dd9cec49b5b96aa32722bcf16c1160e 100644
--- a/entity/SupportTicket_entity/entityfields/resubmitticket/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/resubmitticket/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.db");
 import("system.util");
 import("system.tools");
@@ -14,6 +15,6 @@ var params = {
     "ActionName_param" : "resubmitTicket"
 };
 
-neon.openContext("SupportTicket", "SupportTicketEditResubmission_view", [vars.get("$field.TICKETID")], neon.OPERATINGSTATE_EDIT, params);
-
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$field.TICKETID")]).parameters(params);
+neon.openContextWithRecipe("SupportTicket", "SupportTicketEditResubmission_view", neon.OPERATINGSTATE_EDIT, recipe.toString());
 
diff --git a/entity/SupportTicket_entity/entityfields/returnticket/onActionProcess.js b/entity/SupportTicket_entity/entityfields/returnticket/onActionProcess.js
index 98516b9aa72eb282dc3b6dc51c607f074fbabb38..08cbad3a66d2ab6408b400039906894842879cc1 100644
--- a/entity/SupportTicket_entity/entityfields/returnticket/onActionProcess.js
+++ b/entity/SupportTicket_entity/entityfields/returnticket/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("KeywordRegistry_basic");
 import("Employee_lib");
 import("Sql_lib");
@@ -10,7 +11,8 @@ if (vars.get("$field.TICKET_EDITOR_CONTACT_ID"))
         "ActionName_param" : "returnTicket"
     };
 
-    neon.openContext("SupportTicket", "SupportTicketEditReturn_view", [vars.get("$field.TICKETID")], neon.OPERATINGSTATE_EDIT, params);  
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$field.TICKETID")]).parameters(params);
+    neon.openContextWithRecipe("SupportTicket", "SupportTicketEditReturn_view", neon.OPERATINGSTATE_EDIT, recipe.toString());
 }
 else
 {
diff --git a/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/task_editor_contact_id.displayvalue/expression.js b/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/task_editor_contact_id.displayvalue/expression.js
deleted file mode 100644
index b4fcbb2f5e478864527cee2001c5a58ef165ffe8..0000000000000000000000000000000000000000
--- a/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/task_editor_contact_id.displayvalue/expression.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import("system.result");
-import("Person_lib");
-
-var subSql = PersUtils.getResolvingDisplaySubSql("TICKET.EDITOR_CONTACT_ID");
-result.string(subSql);
\ No newline at end of file
diff --git a/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/ticket_editor_contact_id.displayvalue/expression.js b/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/ticket_editor_contact_id.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..3d59d2aaa06426ad9d863dbf3dcbf88e601a3422
--- /dev/null
+++ b/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/ticket_editor_contact_id.displayvalue/expression.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("Person_lib");
+
+result.string(PersUtils.getResolvingDisplaySubSql("TICKET.EDITOR_CONTACT_ID"));
diff --git a/entity/SyncedSearches_entity/entityfields/exportfilter/children/exportfiltertocontacts/onActionProcess.js b/entity/SyncedSearches_entity/entityfields/exportfilter/children/exportfiltertocontacts/onActionProcess.js
index c88781d813cc5f841e7b46f72c5282fb86772b40..7e7718f4b64a014629945a0d208f6f5ec0acb3a7 100644
--- a/entity/SyncedSearches_entity/entityfields/exportfilter/children/exportfiltertocontacts/onActionProcess.js
+++ b/entity/SyncedSearches_entity/entityfields/exportfilter/children/exportfiltertocontacts/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.db");
 import("system.vars");
@@ -16,9 +17,9 @@ var params =
 
 if(groupId == "Organisation_entity")
 {
-    neon.openContext("Organisation", "OrganisationFilter_view", null, neon.OPERATINGSTATE_SEARCH, params);
+    neon.openContextWithRecipe("Organisation", "OrganisationFilter_view", neon.OPERATINGSTATE_SEARCH, neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString());
 }
 else
 {
-    neon.openContext("Person", "PersonFilter_view", null, neon.OPERATINGSTATE_SEARCH, params);
+    neon.openContextWithRecipe("Person", "PersonFilter_view", neon.OPERATINGSTATE_SEARCH, neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString());
 }
\ No newline at end of file
diff --git a/entity/UnlinkedMail_entity/entityfields/toactivity_actiongroup/children/toactivity_action/onActionProcess.js b/entity/UnlinkedMail_entity/entityfields/toactivity_actiongroup/children/toactivity_action/onActionProcess.js
index 773f204fd3e645dfc9e94e7e5b3f3bf3cdfd05a2..0867a6bf916d5a0df7de1e2b2b0d1eb7ffd636ca 100644
--- a/entity/UnlinkedMail_entity/entityfields/toactivity_actiongroup/children/toactivity_action/onActionProcess.js
+++ b/entity/UnlinkedMail_entity/entityfields/toactivity_actiongroup/children/toactivity_action/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Employee_lib");
 import("system.neon");
 import("system.mail");
@@ -9,7 +10,8 @@ var incomingMailExec = new IncomingEmailExecutor(mailObj);
 if (incomingMailExec.isUnlinkable())
 {
     //helper context and entity for configuring the linking, further working (linking, creating activities, etc.) is done there
-    neon.openContext("UnlinkedMailMappingWrapper", null, ["1"], neon.OPERATINGSTATE_EDIT, {"UnlinkedMailId_param": vars.get("$sys.uid")});
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist(["1"]).parameters({"UnlinkedMailId_param": vars.get("$sys.uid")});
+    neon.openContextWithRecipe("UnlinkedMailMappingWrapper", null, neon.OPERATINGSTATE_EDIT, recipe.toString());
 }
 else
 {
diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js
index 74be6d74eb7c8498d52842ef89eafe4ad20efd27..8d3578f089f167721ffadcd9ab12ee490550a9d8 100644
--- a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js
+++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Util_lib");
 import("system.result");
 import("system.neon");
@@ -59,5 +60,6 @@ params = {
 };
 
 
-neon.openContext("Appointment", "AppointmentEdit_view", [vars.get("$field.VISITPLANENTRYID")], neon.OPERATINGSTATE_NEW, params, null);
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([vars.get("$field.VISITPLANENTRYID")]).parameters(params);
+neon.openContextWithRecipe("Appointment", "AppointmentEdit_view", neon.OPERATINGSTATE_NEW, recipe.toString(), null);
 result.string(true);
diff --git a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js
index cf79e9774522847b458a6ef8fd04e2ee74d9ad15..f03de390b1371332ce8e5cb00511627f68bb77fa 100644
--- a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js
+++ b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.db");
 import("system.neon");
 import("system.vars");
@@ -12,4 +13,5 @@ params["Entrydate_param"] = vars.get("$field.DUE_DATE");
 params["PrioritySource_param"] = vars.get("$field.PRIORITY_SOURCE");
 params["VisitrecommendationId_param"] = vars.get("$field.UID");
 
-neon.openContext("VisitPlanEntry", "VisitPlanEntryEdit_view", null, neon.OPERATINGSTATE_NEW, params);
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+neon.openContextWithRecipe("VisitPlanEntry", "VisitPlanEntryEdit_view", neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/WorkflowDefinition_entity/entityfields/tableactions/children/createmodel/onActionProcess.js b/entity/WorkflowDefinition_entity/entityfields/tableactions/children/createmodel/onActionProcess.js
index 82689600b7a620743de9485b99a43849e497c01b..1def65e355fc7387e3b766a49997e6415fa5c75e 100644
--- a/entity/WorkflowDefinition_entity/entityfields/tableactions/children/createmodel/onActionProcess.js
+++ b/entity/WorkflowDefinition_entity/entityfields/tableactions/children/createmodel/onActionProcess.js
@@ -1,3 +1,5 @@
+import("system.neonFilter");
 import("system.neon");
 
-neon.openContext("WorkflowModel", null, null, neon.OPERATINGSTATE_NEW, {});
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({}).toString();
+neon.openContextWithRecipe("WorkflowModel", null, neon.OPERATINGSTATE_NEW, recipe);
diff --git a/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openstore/onActionProcess.js b/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openstore/onActionProcess.js
index dec35f2444423141abf1d9fcef1829bc1d4489ae..e657a1d83d05c86b2bec9b66b58d599ac0ce95fe 100644
--- a/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openstore/onActionProcess.js
+++ b/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openstore/onActionProcess.js
@@ -1,3 +1,5 @@
+import("system.neonFilter");
 import("system.neon");
 
-neon.openContext("WorkflowDefinitionStore", "WorkflowDefinitionStore_view", null, neon.OPERATINGSTATE_VIEW, {});
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({}).toString();
+neon.openContextWithRecipe("WorkflowDefinitionStore", "WorkflowDefinitionStore_view", neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/entity/WorkflowLauncher_entity/entityfields/launchworkflows/onActionProcess.js b/entity/WorkflowLauncher_entity/entityfields/launchworkflows/onActionProcess.js
index 71d4a69dc83979fcc497fddddee58f56273c8f59..0f425c408ed00e99d07ba77478963fa56facffbd 100644
--- a/entity/WorkflowLauncher_entity/entityfields/launchworkflows/onActionProcess.js
+++ b/entity/WorkflowLauncher_entity/entityfields/launchworkflows/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("Util_lib");
 import("Workflow_lib");
@@ -28,5 +29,8 @@ targets.forEach(function ([targetId, targetContext, processVariables])
         workflow.setProcessInstanceName(instanceId, instanceName);
 });
     
-if (instanceId)
-    neon.openContext("WorkflowInstance", "WorkflowInstancePreview_view", [instanceId], neon.OPERATINGSTATE_VIEW, {});
\ No newline at end of file
+if(instanceId)
+{
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([instanceId]).toString();
+    neon.openContextWithRecipe("WorkflowInstance", "WorkflowInstancePreview_view", neon.OPERATINGSTATE_VIEW, recipe);
+}
diff --git a/entity/WorkflowTask_entity/afterSave.js b/entity/WorkflowTask_entity/afterSave.js
index 61b54c53434b45f42ffd7184e88c153966cfac5c..079a247a3a1aefa1d9e392b8b37beb238ec3d5c1 100644
--- a/entity/WorkflowTask_entity/afterSave.js
+++ b/entity/WorkflowTask_entity/afterSave.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("system.workflow");
 import("system.vars");
@@ -26,13 +27,13 @@ if (entityData["FORMRESULT"])
     }, startVal);
 
     if (newestTask.id !== null)
-        neon.openContext("WorkflowTask", "WorkflowTaskPreview_view", [newestTask.id], neon.OPERATINGSTATE_VIEW, null);
+        neon.openContextWithRecipe("WorkflowTask", "WorkflowTaskPreview_view", neon.OPERATINGSTATE_VIEW, neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([newestTask.id]).toString());
     else
     {
         var params = {
             "TaskTitle_param": entityData["NAME"]
         };
         //if you try to open the task now, it will display "Task done"
-        neon.openContext("WorkflowTask", "WorkflowTaskPreview_view", [entityData["UID"]], neon.OPERATINGSTATE_VIEW, params);
+        neon.openContextWithRecipe("WorkflowTask", "WorkflowTaskPreview_view", neon.OPERATINGSTATE_VIEW, neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([entityData["UID"]]).parameters(params).toString());
     }
 }
\ No newline at end of file
diff --git a/entity/WorkflowTask_entity/entityfields/completetask/onActionProcess.js b/entity/WorkflowTask_entity/entityfields/completetask/onActionProcess.js
index 721705872e2e98a99f951d289ef19159f51c76de..9c69f709df336a591582e5166f233e2806c0d80f 100644
--- a/entity/WorkflowTask_entity/entityfields/completetask/onActionProcess.js
+++ b/entity/WorkflowTask_entity/entityfields/completetask/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Employee_lib");
 import("system.neon");
 import("system.vars");
@@ -9,7 +10,10 @@ var params = {
     "TaskTitle_param" : vars.get("$field.NAME")
 };
 if (formDefinition)
-    neon.openContext("WorkflowTask", "WorkflowTaskForm_view", [taskId], neon.OPERATINGSTATE_EDIT, params);
+{
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([taskId]).parameters(params).toString();
+    neon.openContextWithRecipe("WorkflowTask", "WorkflowTaskForm_view", neon.OPERATINGSTATE_EDIT, recipe);
+}
 else
 {
     if (!vars.get("$field.ASSIGNEE"))
diff --git a/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/onActionProcess.js b/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/onActionProcess.js
index 8924818c3b007fcd15c84e40198e19a282ec38a9..3a8578a3c8049f582dd7a71da620546fd8962110 100644
--- a/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/onActionProcess.js
+++ b/entity/WorkflowTask_entity/entityfields/tableactions/children/completemultipletasks/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Employee_lib");
 import("system.workflow");
 import("system.neon");
@@ -34,7 +35,8 @@ tasks.forEach(function (task)
 
 if (formTaskId)
 {
-    neon.openContext("WorkflowTask", "WorkflowTaskForm_view", [formTaskId], neon.OPERATINGSTATE_EDIT, {});
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([formTaskId]).parameters({}).toString();
+    neon.openContextWithRecipe("WorkflowTask", "WorkflowTaskForm_view", neon.OPERATINGSTATE_EDIT, recipe);
 }
 else if (refreshRequired)
 {    
diff --git a/neonContext/Activity/Activity.aod b/neonContext/Activity/Activity.aod
index 38c510d1fd2b5e39f45474fab35d1399a9400ac8..6d0d42c2171f863227823d53113447a2fd7e3f1f 100644
--- a/neonContext/Activity/Activity.aod
+++ b/neonContext/Activity/Activity.aod
@@ -49,12 +49,6 @@
       <name>6bd90850-7818-4187-8518-1172c9fb92ad</name>
       <view>ActivityNoteEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>90a403ad-675e-4451-9469-9737da372f92</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>bd646a45-5e47-4d89-aa62-3c213beda7b7</name>
-    </neonViewReference>
     <neonViewReference>
       <name>7e84a9f7-03b0-4da7-88ce-fda1280d44ce</name>
       <view>ActivityAdvertising_view</view>
diff --git a/neonContext/Advertising/Advertising.aod b/neonContext/Advertising/Advertising.aod
index 72511e21226ca6f40d3d6d5de4df3b1655b06f64..2f705e5026cf9d449cbad18863142d452dc1aaf1 100644
--- a/neonContext/Advertising/Advertising.aod
+++ b/neonContext/Advertising/Advertising.aod
@@ -25,9 +25,6 @@
       <name>7d17d65a-30c9-4041-ac9a-ee60f1ae6c58</name>
       <view>AdvertisingMain_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>ebb1f862-1b3d-46c0-ad8b-f06a1c14954d</name>
-    </neonViewReference>
     <neonViewReference>
       <name>980e7357-9728-4511-bd0a-3624320118e7</name>
       <view>AdvertisingDetail_view</view>
diff --git a/neonContext/AdvertisingItem/AdvertisingItem.aod b/neonContext/AdvertisingItem/AdvertisingItem.aod
index b550260050866e09e812a984d57f5afa7e155a04..adcc97d25e2ab041c711e4d2b5a5d7b6821007ec 100644
--- a/neonContext/AdvertisingItem/AdvertisingItem.aod
+++ b/neonContext/AdvertisingItem/AdvertisingItem.aod
@@ -12,16 +12,10 @@
       <name>03ebbae0-0f94-41b2-ae92-d5e1bb54a715</name>
       <view>AdvertisingItemEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>af7ddf8c-3e2b-4740-bfef-b8c81d2f0f64</name>
-    </neonViewReference>
     <neonViewReference>
       <name>ec8a27af-0d20-41e8-925d-45c2f1bdfa54</name>
       <view>AdvertisingItemPreview_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>27c97161-8929-4f5d-a8af-e7f4f56ae22b</name>
-    </neonViewReference>
     <neonViewReference>
       <name>a2fe9312-f4b7-421a-ac6d-19a07033d9bd</name>
       <view>AdvertisingItemFilter_view</view>
diff --git a/neonContext/Classification/Classification.aod b/neonContext/Classification/Classification.aod
index 30512179e47677f2a733d6c63920e9b5f64baec8..48aa01e8f2098d33521a308718d3606c842f1ab5 100644
--- a/neonContext/Classification/Classification.aod
+++ b/neonContext/Classification/Classification.aod
@@ -10,8 +10,5 @@
       <name>3ab6b4d1-e6db-42be-8262-2499a3d114e9</name>
       <view>ClassificationTree_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>50c0d5c5-c84f-452d-9f77-41b82ac0319f</name>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/InboxFilter/InboxFilter.aod b/neonContext/InboxFilter/InboxFilter.aod
index 46d7e9ec3224de973ee3f45462134986b936d75d..89440fcf766d53d7ddc8d324be14ef3a71519543 100644
--- a/neonContext/InboxFilter/InboxFilter.aod
+++ b/neonContext/InboxFilter/InboxFilter.aod
@@ -8,16 +8,10 @@
   <editView>InboxFilterEdit_view</editView>
   <entity>InboxFilter_entity</entity>
   <references>
-    <neonViewReference>
-      <name>2c3b7eb6-a1ef-4e0c-b6c2-6e1a4ae59f37</name>
-    </neonViewReference>
     <neonViewReference>
       <name>3253ba3d-0c32-4ad6-adea-fb5b727adc21</name>
       <view>InboxFilterEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>f67b2a45-8fc3-41be-b7ab-a7eb03bf7a0e</name>
-    </neonViewReference>
     <neonViewReference>
       <name>c7db05d0-62b6-4178-92a7-54143514d08e</name>
       <view>InboxFilterFilter_view</view>
diff --git a/neonContext/KnowledgeManagement/KnowledgeManagement.aod b/neonContext/KnowledgeManagement/KnowledgeManagement.aod
index 2066d68f3e0f3685e830398f152e2a5c1b2c2780..ba9f4dc7f367ea19463e94e752d01a562fc20b58 100644
--- a/neonContext/KnowledgeManagement/KnowledgeManagement.aod
+++ b/neonContext/KnowledgeManagement/KnowledgeManagement.aod
@@ -20,9 +20,6 @@
       <name>aa5aab07-8093-4c3f-802e-3c5e2f15a307</name>
       <view>KnowledgeManagementFilter_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>1c97f522-d463-42ce-ae31-2973b48f9be4</name>
-    </neonViewReference>
     <neonViewReference>
       <name>3977743f-ab3a-472e-bb80-cea475f48aaa</name>
       <view>KnowledgeManagementEdit_view</view>
diff --git a/neonContext/MSTTeam/MSTTeam.aod b/neonContext/MSTTeam/MSTTeam.aod
index 3f0ea6b92907c6b28ee8c669151af3cb44df8b35..dfbc6c73f30c818c2a67900b6b5f22416a0b3797 100644
--- a/neonContext/MSTTeam/MSTTeam.aod
+++ b/neonContext/MSTTeam/MSTTeam.aod
@@ -14,8 +14,5 @@
       <name>c13c234d-ee98-4a26-b7b1-8ee3a3829284</name>
       <view>MSTTeamPreview_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>b1e14c73-f48f-43a7-a459-2aa0172d015b</name>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Offer/Offer.aod b/neonContext/Offer/Offer.aod
index 9d43127e980ab775283fd2fe4e2c0367104611e2..271bdfa9b499295cc511d6c1a464eb8afb50a3fd 100644
--- a/neonContext/Offer/Offer.aod
+++ b/neonContext/Offer/Offer.aod
@@ -47,8 +47,5 @@
     <webserviceReference>
       <name>277d4493-9a49-4e68-b00c-29d3d0e0b9d2</name>
     </webserviceReference>
-    <neonViewReference>
-      <name>e664da63-c1c7-4def-ba7b-037cd8da6994</name>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Order/Order.aod b/neonContext/Order/Order.aod
index 292c72ec90fab1d1ae51db46715e333675e2b252..21a230bfa7bb72f8f316727148a524b777c7ae91 100644
--- a/neonContext/Order/Order.aod
+++ b/neonContext/Order/Order.aod
@@ -31,9 +31,6 @@
       <name>26c6c56a-7e5a-4101-884a-41f522f071ae</name>
       <view>OrderEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>ac222647-40b8-43e3-a054-edfc3d69106b</name>
-    </neonViewReference>
     <neonViewReference>
       <name>cea44230-2a80-4a3e-9dc4-3d199f8f6edc</name>
       <view>OrderDunning_view</view>
diff --git a/neonContext/Organisation/Organisation.aod b/neonContext/Organisation/Organisation.aod
index fccd99b2964f1c91e161f5579d611ee0a11f2785..3c53dca515748b500c91218c79bf29d40f47eb62 100644
--- a/neonContext/Organisation/Organisation.aod
+++ b/neonContext/Organisation/Organisation.aod
@@ -75,5 +75,9 @@
       <name>a6132e66-81b6-4350-a398-0d9d9c1bbafd</name>
       <view>OrganisationMarketing_view</view>
     </neonViewReference>
+    <neonViewReference>
+      <name>f7c98ab4-ac6b-4029-87f8-70aac978cfa0</name>
+      <view>OrganisationClassificationDrawer_view</view>
+    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/Product/Product.aod b/neonContext/Product/Product.aod
index 8b72cfd15111180f32759058af5695b27cc97382..4a1a49078e0a59b2fd6643f45972170c2e52f505 100644
--- a/neonContext/Product/Product.aod
+++ b/neonContext/Product/Product.aod
@@ -35,8 +35,5 @@
       <name>8088a294-78dd-4f7b-8bd3-add1b9fe3d90</name>
       <view>ProductDescritption_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>6ddd9a60-2705-47c3-8f32-3131e3cfcc4b</name>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/QuickEntry/QuickEntry.aod b/neonContext/QuickEntry/QuickEntry.aod
index 34f26b4de659f8dee1a76e31aa33e1e38b1cf0a9..c44db52e95254828433ff4928cda968192ca8872 100644
--- a/neonContext/QuickEntry/QuickEntry.aod
+++ b/neonContext/QuickEntry/QuickEntry.aod
@@ -10,8 +10,5 @@
       <name>43a3acbb-82a7-4d86-88f9-0e4265e4898d</name>
       <view>QuickEntryEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>916f4d61-c19e-4950-b765-7dc8f0b95869</name>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/ServiceEmailRecipients/ServiceEmailRecipients.aod b/neonContext/ServiceEmailRecipients/ServiceEmailRecipients.aod
index 88f903afc702b6c68ee4e1595b65f3b6cace8c6c..21367e0ae9dcc8aeb565155cdd64c809f3b8acb0 100644
--- a/neonContext/ServiceEmailRecipients/ServiceEmailRecipients.aod
+++ b/neonContext/ServiceEmailRecipients/ServiceEmailRecipients.aod
@@ -4,35 +4,14 @@
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <entity>ServiceEmailRecipients_entity</entity>
   <references>
-    <neonViewReference>
-      <name>185ab0f9-8610-42cb-967d-6a4568d1acfc</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>fc3145fd-2ae2-4233-a873-cc4ae01106a9</name>
-    </neonViewReference>
     <neonViewReference>
       <name>c4ead7b5-4f8c-43cd-a555-48b6c1e6b75c</name>
       <view>ServiceEmailRecipientsToMutliEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>c757a393-cff9-467f-a03e-d1d4c15b067c</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>3dd502b5-1093-4187-831f-adf0ec12aede</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>25d06156-b0f5-4914-b523-78c4b9222655</name>
-    </neonViewReference>
     <neonViewReference>
       <name>a8c4f117-3768-4313-b0a8-92577672ea43</name>
       <view>ServiceEmailRecipientsToEmployeesMultiEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>4030b85d-3b39-474d-94b4-078e7a8ab527</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>25adfb0e-4a83-4c43-b3f6-a8f6ec850d96</name>
-    </neonViewReference>
     <neonViewReference>
       <name>99f86768-27a4-436c-975d-9e53d2d1fb86</name>
       <view>ServiceEmailRecipientsCCMutliEdit_view</view>
diff --git a/neonContext/SlaveAdministration/SlaveAdministration.aod b/neonContext/SlaveAdministration/SlaveAdministration.aod
index ccebe0d853ba2be326b9c81af223138a83422e19..a131c7a8fe7889555124e0d0fa42d286d6ebb90b 100644
--- a/neonContext/SlaveAdministration/SlaveAdministration.aod
+++ b/neonContext/SlaveAdministration/SlaveAdministration.aod
@@ -21,18 +21,9 @@
       <name>3afd95c8-e6a9-4b2a-b60d-f6ea9343a084</name>
       <view>SlaveAdministrationPreview_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>f01a361a-7c0a-433a-84f2-3123aa9708ae</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>d8fa5a7e-26f6-488c-a6d2-fe488b7d68d2</name>
-    </neonViewReference>
     <neonViewReference>
       <name>0cd9a2be-f604-41c6-86d8-07595fd6ecd0</name>
       <view>SlaveAdministrationMyLastSyncScoreCard_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>e4fbf35c-ca15-464b-b95d-d0ead8bbfc75</name>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/SupportTicket/SupportTicket.aod b/neonContext/SupportTicket/SupportTicket.aod
index 8146a7dda5d33c21b2e8745152f143fea7535e33..1186cc25be3246e4fa3b8a210ce83b4b47aa3f6d 100644
--- a/neonContext/SupportTicket/SupportTicket.aod
+++ b/neonContext/SupportTicket/SupportTicket.aod
@@ -24,29 +24,14 @@
       <name>c290c5f1-53d3-4634-bf42-0de2ee89974c</name>
       <view>SupportTicketPreview_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>7de79407-cb7e-49b9-8e39-453f02cb6193</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>34b9db28-2955-4689-a838-36003cb78e8a</name>
-    </neonViewReference>
     <neonViewReference>
       <name>adb0f031-034b-428b-9844-d08aa0a60f92</name>
       <view>SupportTicketPull_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>df405007-d50f-4be9-9faa-ad98afcec136</name>
-    </neonViewReference>
     <neonViewReference>
       <name>f61a4a1d-aa89-4ae9-a340-9b3bf0cde02f</name>
       <view>SupportTicketDetails_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>96082d94-91cc-4bde-89f5-cee602471790</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>88200e60-bf34-4bab-80ea-118e5e521d66</name>
-    </neonViewReference>
     <neonViewReference>
       <name>e6d4d8d5-2423-47a3-a137-dbcbde45dc55</name>
       <view>SupportTicketComm_view</view>
@@ -55,12 +40,6 @@
       <name>931af8fb-bcdb-4201-8cfc-df201b984a3e</name>
       <view>SupportTicketRequestor_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>85d5c419-5e1c-4fdc-b9ee-f81bc5515ecd</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>fc7b698f-ded0-49f8-b5e3-7f7b0c63ea93</name>
-    </neonViewReference>
     <neonViewReference>
       <name>f70692c0-7ea0-423b-9d65-f47ea0e093f5</name>
       <view>SupportTicketEdit_view</view>
@@ -69,9 +48,6 @@
       <name>462f9797-f430-401b-a0b1-542cbba0960f</name>
       <view>SupportTicketEditTemplate_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>a5bbb7f7-f1d2-4dd3-a3d0-aeaee96140ad</name>
-    </neonViewReference>
     <neonViewReference>
       <name>f6911073-5a02-46e2-8b82-19ef2f2d00ef</name>
       <view>SupportTicketEditResubmission_view</view>
@@ -92,9 +68,6 @@
       <name>fbb6a86d-095b-4143-a83d-5612952d6e7f</name>
       <view>SupportTicketLookup_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>3bcf18a8-1f3c-4841-ad31-01867b17d187</name>
-    </neonViewReference>
     <neonViewReference>
       <name>b3c473d4-20f1-4e4c-b026-3e7abf4c6199</name>
       <view>SupportTicketMultiEdit_view</view>
diff --git a/neonContext/SupportTicketTemplate/SupportTicketTemplate.aod b/neonContext/SupportTicketTemplate/SupportTicketTemplate.aod
index ea96ec975d7979656a8cb34ff013728f73c04150..bb9392ab4e75d59e3ad546ee055ca1fecf85ebd4 100644
--- a/neonContext/SupportTicketTemplate/SupportTicketTemplate.aod
+++ b/neonContext/SupportTicketTemplate/SupportTicketTemplate.aod
@@ -22,9 +22,6 @@
       <name>7c78e7b4-68f7-4d92-ad90-ead21853b63e</name>
       <view>SupportTicketTemplateEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>7be14684-e598-4d77-8585-0166681e68dd</name>
-    </neonViewReference>
     <neonViewReference>
       <name>fe1e550c-5bfe-437f-8eef-98119b0779b6</name>
       <view>SupportTicketTemplateLookup_view</view>
diff --git a/neonContext/Synccontact/Synccontact.aod b/neonContext/Synccontact/Synccontact.aod
index 9d21237d637698c2f4b70943615793fc9bad92f7..094e09b69d2c22d1c6307f8fc69924015305f68a 100644
--- a/neonContext/Synccontact/Synccontact.aod
+++ b/neonContext/Synccontact/Synccontact.aod
@@ -14,8 +14,5 @@
       <name>a2f2b551-da7d-4996-9723-b0212654e008</name>
       <view>SynccontactCount_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>ff4bddc9-b551-4275-a4ce-3146e3b4d43e</name>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonContext/TopicTree/TopicTree.aod b/neonContext/TopicTree/TopicTree.aod
index b76eb8916fc504ee19bcaac5cead1ebed98665df..4a11b888014bab0c9ef66c41451617d07beafee4 100644
--- a/neonContext/TopicTree/TopicTree.aod
+++ b/neonContext/TopicTree/TopicTree.aod
@@ -8,9 +8,6 @@
   <lookupView>TopicTreeLookup_view</lookupView>
   <entity>TopicTree_entity</entity>
   <references>
-    <neonViewReference>
-      <name>a361f8a5-5d42-4058-9452-0f591f7e722f</name>
-    </neonViewReference>
     <neonViewReference>
       <name>93167d21-d793-4977-92b2-f7996de35cf4</name>
       <view>TopicTreePreview_view</view>
@@ -19,12 +16,6 @@
       <name>4b82a15f-6522-4523-8ddc-e4e7e9d6efcf</name>
       <view>TopicTreeEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>c648fbf3-5cfb-4ec1-87a3-5b35c74df0b1</name>
-    </neonViewReference>
-    <neonViewReference>
-      <name>e74e51db-da4a-4e1a-96fc-7800a9a22536</name>
-    </neonViewReference>
     <neonViewReference>
       <name>fdf244ab-804f-49ad-bb9e-2a0def6d1fc6</name>
       <view>TopicTreeFilter_view</view>
diff --git a/neonContext/TopicTreeRelation/TopicTreeRelation.aod b/neonContext/TopicTreeRelation/TopicTreeRelation.aod
index b29d0bdd0b00f70cdd04406537b66bd6792b7513..04d48d0a1db4406ed894895706e6a34a6a4c7798 100644
--- a/neonContext/TopicTreeRelation/TopicTreeRelation.aod
+++ b/neonContext/TopicTreeRelation/TopicTreeRelation.aod
@@ -9,9 +9,6 @@
       <name>c9db7f4c-81c5-4b89-af20-0bd5dfa0ec31</name>
       <view>TopicTreeRelationMultiEdit_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>0a1e76a7-68dc-4f7e-a5e3-053540b61f2a</name>
-    </neonViewReference>
     <neonViewReference>
       <name>9180455d-d7b5-4c01-9496-bdf9d4b2c310</name>
       <view>TopicTreeTitledList_view</view>
diff --git a/neonContext/UserDailyGoals/UserDailyGoals.aod b/neonContext/UserDailyGoals/UserDailyGoals.aod
deleted file mode 100644
index 5e8486f3ebb343b89dfedb0f8eebc3003a70c2dc..0000000000000000000000000000000000000000
--- a/neonContext/UserDailyGoals/UserDailyGoals.aod
+++ /dev/null
@@ -1,12 +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>UserDailyGoals</name>
-  <title>Ticket daily goals</title>
-  <description>&lt;null value&gt;</description>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <references>
-    <neonViewReference>
-      <name>c764fed5-979d-488c-b79c-75762df7ddbd</name>
-    </neonViewReference>
-  </references>
-</neonContext>
diff --git a/neonNotificationType/DownloadReady/onResultOpen.js b/neonNotificationType/DownloadReady/onResultOpen.js
index 8f04e8d45b7d950edb92c189d7bdbcbccf0d6b2f..e97fc07fe8da84715014dea1aecd55720e83ef98 100644
--- a/neonNotificationType/DownloadReady/onResultOpen.js
+++ b/neonNotificationType/DownloadReady/onResultOpen.js
@@ -1,3 +1,5 @@
+import("system.neonFilter");
 import("system.neon");
 
-neon.openContext("SerialLetter", null, ["3bb97d70-e651-4800-9742-32b46ac82292"], neon.OPERATINGSTATE_VIEW, {});
\ No newline at end of file
+var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist(["3bb97d70-e651-4800-9742-32b46ac82292"]).toString();
+neon.openContextWithRecipe("SerialLetter", null, neon.OPERATINGSTATE_VIEW, recipe);
diff --git a/neonView/AdvertisingTestEdit_view/AdvertisingTestEdit_view.aod b/neonView/AdvertisingTestEdit_view/AdvertisingTestEdit_view.aod
deleted file mode 100644
index f959c261c1e2565c446652967632725ecdb92abc..0000000000000000000000000000000000000000
--- a/neonView/AdvertisingTestEdit_view/AdvertisingTestEdit_view.aod
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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>AdvertisingTestEdit_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <size>SMALL</size>
-  <layout>
-    <boxLayout>
-      <name>layout</name>
-    </boxLayout>
-  </layout>
-  <children>
-    <genericViewTemplate>
-      <name>generic</name>
-      <hideEmptyFields v="false" />
-      <fields>
-        <entityFieldLink>
-          <name>20f249cd-946b-4be6-8e08-61aa5ba14081</name>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>89e1f432-32bd-4dd7-af8a-12db57e4ae77</name>
-        </entityFieldLink>
-        <entityFieldLink>
-          <name>be36cae9-7dba-4686-8624-3a0d64064112</name>
-        </entityFieldLink>
-      </fields>
-    </genericViewTemplate>
-  </children>
-</neonView>
diff --git a/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod b/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod
deleted file mode 100644
index e11db29e24c4128c55e21f6686762e87d85931a9..0000000000000000000000000000000000000000
--- a/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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>CampaignStepMembers_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <noneLayout>
-      <name>layout</name>
-    </noneLayout>
-  </layout>
-</neonView>
diff --git a/neonView/DocumentTemplatePlaceOfUseList_view/DocumentTemplatePlaceOfUseList_view.aod b/neonView/DocumentTemplatePlaceOfUseList_view/DocumentTemplatePlaceOfUseList_view.aod
deleted file mode 100644
index a794c79ae5468961a47b76e4ef551e5f22129790..0000000000000000000000000000000000000000
--- a/neonView/DocumentTemplatePlaceOfUseList_view/DocumentTemplatePlaceOfUseList_view.aod
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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>DocumentTemplatePlaceOfUseList_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <noneLayout>
-      <name>layout</name>
-    </noneLayout>
-  </layout>
-</neonView>
diff --git a/neonView/DuplicatesOverview_view/DuplicatesOverview_view.aod b/neonView/DuplicatesOverview_view/DuplicatesOverview_view.aod
deleted file mode 100644
index e7f6cadf9d25dabbe2ee05bb144c190b8ee90a8b..0000000000000000000000000000000000000000
--- a/neonView/DuplicatesOverview_view/DuplicatesOverview_view.aod
+++ /dev/null
@@ -1,20 +0,0 @@
-<?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>DuplicatesOverview_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <masterSlaveLayout>
-      <name>layout</name>
-    </masterSlaveLayout>
-  </layout>
-  <children>
-    <neonViewReference>
-      <name>b3164f16-fa7e-42b0-829f-88553add7c08</name>
-      <entityField>#ENTITY</entityField>
-    </neonViewReference>
-    <neonViewReference>
-      <name>8e19d057-58da-4db8-8119-ecf070af86ab</name>
-      <entityField>#ENTITY</entityField>
-    </neonViewReference>
-  </children>
-</neonView>
diff --git a/neonView/MSTTeamChannelEdit_view/MSTTeamChannelEdit_view.aod b/neonView/MSTTeamChannelEdit_view/MSTTeamChannelEdit_view.aod
deleted file mode 100644
index 7bc6b98e1de9c6015fe82e48d2d4c5b1b4171f2e..0000000000000000000000000000000000000000
--- a/neonView/MSTTeamChannelEdit_view/MSTTeamChannelEdit_view.aod
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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>MSTTeamChannelEdit_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <noneLayout>
-      <name>layout</name>
-    </noneLayout>
-  </layout>
-</neonView>
diff --git a/neonView/SalesprojectPhaseInfoTraitList_view/SalesprojectPhaseInfoTraitList_view.aod b/neonView/SalesprojectPhaseInfoTraitList_view/SalesprojectPhaseInfoTraitList_view.aod
deleted file mode 100644
index 66589d53af1ec84be40e2d12d8226dc700d5edec..0000000000000000000000000000000000000000
--- a/neonView/SalesprojectPhaseInfoTraitList_view/SalesprojectPhaseInfoTraitList_view.aod
+++ /dev/null
@@ -1,10 +0,0 @@
-<?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>SalesprojectPhaseInfoTraitList_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-  <layout>
-    <noneLayout>
-      <name>layout</name>
-    </noneLayout>
-  </layout>
-</neonView>
diff --git a/process/ActivityTask_lib/process.js b/process/ActivityTask_lib/process.js
index 70137006164da591b43ccd20a98b57c9423e16e6..df661f7afc0c360bce88958503496c53482b6ec5 100644
--- a/process/ActivityTask_lib/process.js
+++ b/process/ActivityTask_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.logging");
 import("system.entities");
 import("system.vars");
@@ -1029,7 +1030,8 @@ _ActivityTaskUtils._createNew = function(pContext, pRowId, pAdditionalLinks, pPa
         params["ParentId_param"] = pParentId;
     }
     
-    neon.openContext(pContext, null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe(pContext, null, neon.OPERATINGSTATE_NEW, recipe);
 };
 
 /**
diff --git a/process/Bulkmail_lib/process.js b/process/Bulkmail_lib/process.js
index dd8076135d9850c59ad393113e0b6f22cd4e02f4..fdab982c0be4717a6dadafe715e8ddcba504f157 100644
--- a/process/Bulkmail_lib/process.js
+++ b/process/Bulkmail_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("JditoFilter_lib");
 import("CommunicationBlacklist_lib");
 import("EmailFilterHandling_lib");
@@ -417,13 +418,14 @@ BulkMailUtils.openAddRecipientView = function (pContext, pIds, pFilter, pParamet
     if(Utils.isNullOrEmpty(pFilter.filter))
         pFilter.filter= JSON.parse(JditoFilterUtils.getEmptyFilter()).filter;
     
-    pFilter= JSON.stringify(pFilter);
-    neon.openContext("BulkMailAddRecipients", "BulkMailAddRecipientsEdit_view", null, neon.OPERATINGSTATE_VIEW, {
+    pFilter = JSON.stringify(pFilter);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
         "ObjectType_param": pContext,
         "Ids_param": pIds,
         "Filter_param": pFilter,
         "Parameters_param": pParameters
-    });
+    }).toString();
+    neon.openContextWithRecipe("BulkMailAddRecipients", "BulkMailAddRecipientsEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
@@ -574,7 +576,8 @@ BulkMailUtils.newBulkMail = function (pRecipients, pContext, pFilter)
         "PresetRecipientsContext_param": pContext,
         "PresetRecipientsFilter_param": pFilter?JSON.stringify(pFilter):null
     };
-    neon.openContext("BulkMail", "BulkMailEdit_view", null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("BulkMail", "BulkMailEdit_view", neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
@@ -663,7 +666,8 @@ BulkMailUtils.filterNewRecipientsByCondition = function (pBulkMailId, pCondition
  */
 BulkMailUtils.openBulkMail = function (pBulkMailId)
 {
-    neon.openContext("BulkMail", "BulkMailMain_view", [pBulkMailId], neon.OPERATINGSTATE_VIEW, null);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([pBulkMailId]).toString();
+    neon.openContextWithRecipe("BulkMail", "BulkMailMain_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
@@ -727,7 +731,8 @@ BulkMailUtils.copy = function(pBulkMailId)
     var params = {
         "CopyBulkMailId_param" : pBulkMailId
     };
-    neon.openContext("BulkMail", null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("BulkMail", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
@@ -741,7 +746,8 @@ BulkMailUtils.createFromMosaicoTemplate = function(pMosaicoTemplateId)
     var params = {
         "CreateFromMosaicoTemplateId_param" : pMosaicoTemplateId
     };
-    neon.openContext("BulkMail", null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("BulkMail", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 /*
  *Stores the Eml file for a bulkmailrecipient in the Filesystem
@@ -946,11 +952,12 @@ SerialLetterUtils.openAddRecipientView = function (pContext, pContactIds, pFilte
     if (!Utils.isString(pFilter))
         pFilter = JSON.stringify(pFilter);
     
-    neon.openContext("SerialLetterAddRecipients", "SerialLetterAddRecipientsEdit_view", null, neon.OPERATINGSTATE_VIEW, {
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
         "ObjectType_param": pContext,
         "ContactIds_param": pContactIds,
         "ContactFilter_param": pFilter
-    });
+    }).toString();
+    neon.openContextWithRecipe("SerialLetterAddRecipients", "SerialLetterAddRecipientsEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
@@ -1058,7 +1065,8 @@ SerialLetterUtils.isRecipient = function (pSerialLetterId, pContactId, pRecipien
  */
 SerialLetterUtils.openSerialLetter = function (pSerialLetterId)
 {
-    neon.openContext("SerialLetter", "SerialLetterMain_view", [pSerialLetterId], neon.OPERATINGSTATE_VIEW, null);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([pSerialLetterId]).toString();
+    neon.openContextWithRecipe("SerialLetter", "SerialLetterMain_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
@@ -1090,9 +1098,10 @@ SerialLetterUtils.getSerialLetterTemplate = function (pLetterId, pDocumentTempla
 SerialLetterUtils.addParticipantsByRowIds = function(pContactIds)
 {
     var params = {
-        "ContactIds_param" : pContactIds
+        "ContactIds_param": pContactIds
     };
-    neon.openContext("SerialLetterAddRecipients", "SerialLetterAddRecipientsEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("SerialLetterAddRecipients", "SerialLetterAddRecipientsEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
@@ -1106,9 +1115,11 @@ SerialLetterUtils.addParticipantsByRowIds = function(pContactIds)
 SerialLetterUtils.addParticipantsByCondition = function(pCondition, pSourceTableName)
 {
     var params = {
-        "ContactIds_param" : pCondition,
-        "comingFrom_param" : pSourceTableName}
-    neon.openContext("SerialLetterAddRecipients", "SerialLetterAddRecipientsEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+        "ContactIds_param": pCondition,
+        "comingFrom_param": pSourceTableName
+    };
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("SerialLetterAddRecipients", "SerialLetterAddRecipientsEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
diff --git a/process/Campaign_lib/process.js b/process/Campaign_lib/process.js
index 73c7e894f26bfb822e0a692228ee61865e91d167..2a5cd094f7451a7ca1b7eb2100a7b29eedc68247 100644
--- a/process/Campaign_lib/process.js
+++ b/process/Campaign_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.entities");
 import("Util_lib");
 import("system.util");
@@ -229,7 +230,8 @@ CampaignUtils.openSetCampaignStepViewByRowIds = function(pParticipantIds, pCampa
         "currentCampaignStepId_param": pCampaignStepId,
         "isUpdate_param": true
     };
-    neon.openContext("CampaignAddParticipants", "CampaignAddParticipantsEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("CampaignAddParticipants", "CampaignAddParticipantsEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
@@ -251,7 +253,8 @@ CampaignUtils.openSetCampaignStepViewByCondition = function(pCondition, pCampaig
         "currentCampaignStepId_param": pCampaignStepId,
         "isUpdate_param": true
     };
-    neon.openContext("CampaignAddParticipants", "CampaignAddParticipantsEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("CampaignAddParticipants", "CampaignAddParticipantsEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
@@ -267,7 +270,8 @@ CampaignUtils.openNewCampaignStepView = function(pCampaignId)
         "campaignId_param": pCampaignId,
         "campaignSelectionVisible_param": true
     };
-    neon.openContext("CampaignStep", "CampaignStepEdit_view", null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("CampaignStep", "CampaignStepEdit_view", neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
@@ -276,7 +280,8 @@ CampaignUtils.openNewCampaignStepView = function(pCampaignId)
  */
 CampaignUtils.openNewCampaignView = function()
 {
-    neon.openContext("Campaign", "CampaignEdit_view", null, neon.OPERATINGSTATE_NEW, {});
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({}).toString();
+    neon.openContextWithRecipe("Campaign", "CampaignEdit_view", neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
@@ -717,7 +722,8 @@ CampaignUtils.copyCampaign = function(pCampaignid, pDescription, pEmplContactId,
     params["Copy_param"] = JSON.stringify(fieldValues)
     
     
-    neon.openContext("Campaign", null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Campaign", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
@@ -849,7 +855,8 @@ _CampaignUtils._openAddParticipantContext = function(pContext, pTargetDataExpres
     params["isUpdate_param"] = false;
     params["dataSourceTableName_param"] = pSourceTableName;
     
-    neon.openContext(pContext, pView, null, neon.OPERATINGSTATE_VIEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe(pContext, pView, neon.OPERATINGSTATE_VIEW, recipe);
 }
 /*
  * returns the state of a Eventspecific component dependet on the current Campaign Type
diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js
index e7d67c7ed86b1e65d179e54ba6dc82ea7a7d741b..5cf831f05ae2b421d9e78cae9e2576ebc17d7abb 100644
--- a/process/Context_lib/process.js
+++ b/process/Context_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("JditoFilter_lib");
 import("system.logging");
 import("Util_lib");
@@ -547,7 +548,8 @@ AdminViewUtils.open = function (pUidField, pFields)
         "Rows_param": JSON.stringify(rows),
         "Entity_param": vars.get("$sys.currententityname")
     };
-    neon.openContext("DefaultAdminView", "DefaultAdminView_view", [uid], neon.OPERATINGSTATE_VIEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([uid]).parameters(params).toString();
+    neon.openContextWithRecipe("DefaultAdminView", "DefaultAdminView_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 AdminViewUtils.getActionState = function ()
diff --git a/process/Contract_lib/process.js b/process/Contract_lib/process.js
index ad38e53c467cc1943ea18b3f96b39a99f7c4dfd5..eaa213faa106acf2d43ec028fbd57c5398220836 100644
--- a/process/Contract_lib/process.js
+++ b/process/Contract_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.result");
 import("system.tools");
 import("system.vars");
@@ -56,12 +57,13 @@ ContractUtils.getContractNumberValidationFailString = function()
 ContractUtils.createNewContract = function(pRelationId)
 {
     var params = {};
-    
-    if (pRelationId)
+    if(pRelationId)
+    {
         params["ContactId_param"] = pRelationId;
+    }
     
- 
-    neon.openContext("Contract", null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Contract", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
diff --git a/process/DataPrivacy_lib/process.js b/process/DataPrivacy_lib/process.js
index c6b9353c2ad5ce736bc7516a9c930d48894bc6f3..39cd67c2383d21abb4657744702b3c8b14d00a3e 100644
--- a/process/DataPrivacy_lib/process.js
+++ b/process/DataPrivacy_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.project");
 import("system.project");
 import("Util_lib");
@@ -607,11 +608,12 @@ DataPrivacyUtils.DisclosureReportName = function() {
  */
 DataPrivacyUtils.openReport = function(pContactId, pReportName, pDSGVOInfo, pLocale)
 {
-    neon.openContext("DSGVOReport", "DSGVOReport_view", [], neon.OPERATINGSTATE_VIEW, {
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([]).parameters({
         "param.ReportName_param": pReportName,
         "param.ContactId_param": pContactId,
         "param.DSGVOInfo_param": JSON.stringify(pDSGVOInfo)
-    });
+    }).toString();
+    neon.openContextWithRecipe("DSGVOReport", "DSGVOReport_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
diff --git a/process/Dependency_lib/process.js b/process/Dependency_lib/process.js
index efe81c43ef8249475a569c9732b3fe96a3149a33..e6e799a425bc9ddae41bb24f3bd105bfd2f25dd2 100644
--- a/process/Dependency_lib/process.js
+++ b/process/Dependency_lib/process.js
@@ -1,3 +1,4 @@
+import("system.tag");
 import("Util_lib");
 import("Sql_lib");
 import("system.favorite");
@@ -109,13 +110,13 @@ Dependency.defaultFunctionForFavorites = function (pTableField, pContext)
 {
     return function (pNewData, pOldData)
     {
-        let rowIds = Dependency.defaultFunctionForField(pTableField)(pNewData, pOldData);
-        let ids = [];
+        var rowIds = Dependency.defaultFunctionForField(pTableField)(pNewData, pOldData);
+        var ids = [];
     
-        let config = favorite.createGetFavoritesConfig().setObjectType(pContext);
-        let favos = favorite.getFavorites(config);
+        var config = tag.createGetTaggedObjectsConfig().setObjectType(pContext);
+        var favos = tag.getTaggedObjects(config);
         
-        for(let i = 0; i < favos.length; i++)
+        for(var i = 0; i < favos.length; i++)
         {
             if (rowIds.indexOf(favos[i]["rowid"]) > -1 )
             {
diff --git a/process/DocumentTemplate_lib/process.js b/process/DocumentTemplate_lib/process.js
index 862ad205061423ccd4c0c7050a1abb928c5354e9..0938b2ffc9e73e9a687d88c3bbc947d28bd6b3de 100644
--- a/process/DocumentTemplate_lib/process.js
+++ b/process/DocumentTemplate_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("DocxTemplater_lib");
 import("Binary_lib");
 import("system.neon");
@@ -948,7 +949,8 @@ LetterUtils.openNewLetter = function (pContactId, pComingFrom)
         "ContactId_param" : pContactId,
         "ComingFrom_param" : pComingFrom
     };
-    neon.openContext("Letter", "LetterEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Letter", "LetterEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
diff --git a/process/Email_lib/process.js b/process/Email_lib/process.js
index 7e2adcf0baba3a0f3e5bdf943f8bb490c259b238..7c4d3ae9039daf0a3c8216aedbde5298a506d444 100644
--- a/process/Email_lib/process.js
+++ b/process/Email_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.translate");
 import("system.question");
 import("system.logging");
@@ -111,7 +112,8 @@ EmailWritingUtils.openNewMail = function (pToContactId, pToEmailAddress, pComing
     if (pToEmailAddress)
         params.Recipient_param = pToEmailAddress;
     
-    neon.openContext("Email", "EmailEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Email", "EmailEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 
diff --git a/process/EwsClientSync_lib/process.js b/process/EwsClientSync_lib/process.js
index ba282d9be49b5b92dad20f7f5fc502676b803798..4d62757226b090df96068ab692af86d949890ad8 100644
--- a/process/EwsClientSync_lib/process.js
+++ b/process/EwsClientSync_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.neon");
 import("Util_lib");
 import("system.translate");
@@ -353,6 +354,6 @@ EwsClientSyncUtils.openEwsSyncAddContactView = function(pContactIds, pFilter, pM
         "ContactFilter_param": pFilter, 
         "Mode_param": pMode
     }
-    neon.openContext("EwsSyncAddContacts", "EwsSyncAddContactsEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("EwsSyncAddContacts", "EwsSyncAddContactsEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
-    
\ No newline at end of file
diff --git a/process/ExportTemplate_lib/process.js b/process/ExportTemplate_lib/process.js
index 0dc59363f125d7bd5cc256acfefe337008c86b34..261005b38ba7e9518b1e2812a57dd03e9a78badd 100644
--- a/process/ExportTemplate_lib/process.js
+++ b/process/ExportTemplate_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.project");
 import("Dependency_lib");
 import("Context_lib");
@@ -469,10 +470,11 @@ ExportTemplateUtils.getExportTemplateTitle = function (pExportTemplateId)
 ExportTemplateUtils.addParticipants = function (pSelection, pSourceTableName)
 {
     var params = {
-        "selectedData_param" : pSelection,
-        "comingFrom_param" : pSourceTableName
+        "selectedData_param": pSelection,
+        "comingFrom_param": pSourceTableName
     }
-    neon.openContext("ExportTemplateSelection", "ExportTemplateSelectionEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("ExportTemplateSelection", "ExportTemplateSelectionEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
diff --git a/process/Favorites_lib/process.js b/process/Favorites_lib/process.js
index 151f9b73a6ceb930b44921b17decd4caa2e6b42d..206287429750807ee56221a70d14c710c7566137 100644
--- a/process/Favorites_lib/process.js
+++ b/process/Favorites_lib/process.js
@@ -1,3 +1,4 @@
+import("system.tag");
 import("system.translate");
 import("system.vars");
 import("system.favorite");
@@ -10,7 +11,7 @@ function FavoritesUtil(){}
 FavoritesUtil.getUserFavoriteGroups = function()
 {
     var allTypes = [];
-    var alias = favorite.getFavoritesAlias();
+    var alias = tag.getTagAlias();
 
     var filterCond = newWhere("ASYS_RECORDGROUP.USER_ID", tools.getCurrentUser()["name"], null, null, alias);
 
@@ -57,7 +58,7 @@ FavoritesUtil.getFilterDisplayCondition = function(pObjecttype, pOperator, pRawv
  */
 FavoritesUtil.getRowIdsOfFavorites = function(pObjecttype, pOperator, pRawvalue)
 {
-    var sysAlias = favorite.getFavoritesAlias();
+    var sysAlias = tag.getTagAlias();
     var op = "";
 
     if(pOperator == "1")
@@ -85,7 +86,7 @@ FavoritesUtil.getRowIdsOfFavorites = function(pObjecttype, pOperator, pRawvalue)
 FavoritesUtil.getUserFavoriteGroupsByContext = function(pContext)
 {
     var allTypes = [];
-    var alias = favorite.getFavoritesAlias();
+    var alias = tag.getTagAlias();
 
     var filterCond = newWhere("ASYS_RECORDGROUP.USER_ID", tools.getCurrentUser()[tools.NAME], null, null, alias);
 
diff --git a/process/Location_lib/process.js b/process/Location_lib/process.js
index 98a3aba621804153d9911ff1d69466de95863e25..8d0bee9b9ff9e66224fa16eaee88392a5fcc00e7 100644
--- a/process/Location_lib/process.js
+++ b/process/Location_lib/process.js
@@ -295,8 +295,8 @@ LocationFinder.prototype.getGeoLocation = function (pAddress)
  * Update LAT, LON and VALIDATION of the given Addresses
  * This function is call-by-reference and the errors of the updates will be returned by pMalformedAddressData.
  * 
- * @param {pMalformedAddressData} to collect the errors of the updates
- * @param {pAddresses} pAddress an object containing the address data
+ * @param {object} pMalformedAddressData to collect the errors of the updates
+ * @param {object} pAddresses pAddress an object containing the address data
  * 
  * @return {void}
  */
diff --git a/process/Neon_lib/process.js b/process/Neon_lib/process.js
index c9400e2255c4ec752d4be18e2d0d0ddfe10992ad..5dc20df675d702c2174496c659618627e88b1531 100644
--- a/process/Neon_lib/process.js
+++ b/process/Neon_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Sql_lib");
 import("Date_lib");
 import("system.vars");
@@ -39,7 +40,10 @@ CopyModuleUtils.openNewModules = function(pNeonContext, pModulesMapping)
             }
 
             if(newids.length > 0)
-                neon.openContext(pNeonContext, null, newids, neon.OPERATINGSTATE_VIEW, null);
+            {
+                var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist(newids).toString();
+                neon.openContextWithRecipe(pNeonContext, null, neon.OPERATINGSTATE_VIEW, recipe);
+            }
         }
     }
 }
diff --git a/process/Observation_lib/process.js b/process/Observation_lib/process.js
index b90768b91d3fc9479af4ebda50b97d225408bb96..59d1afc5dafb7f98f9703082085dd35418fa6942 100644
--- a/process/Observation_lib/process.js
+++ b/process/Observation_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("JditoFilter_lib");
 import("Keyword_lib");
 import("Util_lib");
@@ -794,9 +795,9 @@ Observation.insertAction = function ()
     if (selectedUIDs.length > 1)
     {
         params["ObjectIds_param"] = JSON.stringify(selectedUIDs);
-        neon.openContext("ObservationMultiple", "ObservationMultipleEdit_view", null, neon.OPERATINGSTATE_VIEW, params);
+        var ctxRecipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+        neon.openContextWithRecipe("ObservationMultiple", "ObservationMultipleEdit_view", neon.OPERATINGSTATE_VIEW, ctxRecipe);
         return;
-        
     } 
     else if (selectedUIDs.length) 
     {
@@ -808,7 +809,8 @@ Observation.insertAction = function ()
         
         params["ObjectFilter_param"] = filter;
     }
-    neon.openContext("Observation", "ObservationEdit_view", null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Observation", "ObservationEdit_view", neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
diff --git a/process/Offer_lib/process.js b/process/Offer_lib/process.js
index d749cf7ea38e5da012870e9989b895e856b3b4a2..b4c59f56e08c99a083c7a6c12d3a7b44b9aab9a2 100644
--- a/process/Offer_lib/process.js
+++ b/process/Offer_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.project");
 import("system.SQLTYPES");
 import("system.vars");
@@ -95,17 +96,26 @@ OfferUtils.createNewOffer = function(pContextId, pRowId, pRelationId, pInfo, pSo
             params["ContactIds_param"] = JSON.stringify(pRelationId);
         }
         else
+        {
             params["ContactId_param"] = pRelationId;
+        }
     }
     
     if(pSourceObjectType == "Activity")
+    {
         params["ActivityId_param"] = pSourceObjectRowId;
+    }
     else if(pSourceObjectType == "Task")
+    {
         params["TaskId_param"] = pSourceObjectRowId;
+    }
     
-    if (pInfo)
+    if(pInfo)
+    {
         params["Info_param"] = pInfo;
-    neon.openContext("Offer", null, null, neon.OPERATINGSTATE_NEW, params);
+    }
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Offer", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
@@ -374,7 +384,8 @@ OfferUtils.buildOfferReport = function (pOfferID, pExclDiscountGroupcodes)
  */
 OfferUtils.openOfferReport = function (pOfferID)
 {    
-    neon.openContext("Offer", "OfferReport_view", [pOfferID], neon.OPERATINGSTATE_VIEW, null, true)
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([pOfferID]).toString();
+    neon.openContextWithRecipe("Offer", "OfferReport_view", neon.OPERATINGSTATE_VIEW, recipe, true)
 }
 
 /**
@@ -387,7 +398,9 @@ OfferUtils.openOfferReport = function (pOfferID)
 OfferUtils.copyOffer = function (pOfferId, pOfferData)
 {
     if (!pOfferData)
+    {
         pOfferData = {};
+    }
     var params = {
         "OfferOriginal_Id_param": pOfferId,
         "ContactId_param": pOfferData.contactId,
@@ -399,9 +412,10 @@ OfferUtils.copyOffer = function (pOfferId, pOfferData)
         "OfferPaymentTerm_param": pOfferData.paymentTerm || "",
         "ObjectType_param": pOfferData.objectType || "",
         "ObjectRowId_param": pOfferData.objectRowId || "",
-        "Discount_param" :  pOfferData.discount || ""
+        "Discount_param":  pOfferData.discount || ""
     };
-    neon.openContext("Offer", null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Offer", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
@@ -479,7 +493,8 @@ OfferUtils.copyToOrder = function (pOfferId, pContextId, pRowId, pContactId, pLa
     params["Copy_param"] = JSON.stringify(fieldparams);
     params["OfferId_param"] = pOfferId;
     
-    neon.openContext("Order", null, null, neon.OPERATINGSTATE_NEW, params);  
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Order", null, neon.OPERATINGSTATE_NEW, recipe);  
 }
 
 /**
diff --git a/process/Order_lib/process.js b/process/Order_lib/process.js
index d0f8ac754425c878b6a7f0b05390bf672b271bfe..0769394271226a2719844a5b16f20c0a47e5eb50 100644
--- a/process/Order_lib/process.js
+++ b/process/Order_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Employee_lib");
 import("system.entities");
 import("Offer_lib");
@@ -85,7 +86,7 @@ OrderUtils.createNewOrder = function(pContextId, pRowId, pRelationId)
     var params = {};
     var fieldparams = {};
     
-     if (pRowId && pContextId)
+    if (pRowId && pContextId)
     {
         fieldparams["$field.OBJECT_TYPE"] = pContextId || "";
         fieldparams["$field.OBJECT_ROWID"] = pRowId || "";
@@ -98,7 +99,8 @@ OrderUtils.createNewOrder = function(pContextId, pRowId, pRelationId)
     }
     params["Copy_param"] = JSON.stringify(fieldparams);
     
-    neon.openContext("Order", null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Order", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
@@ -150,7 +152,8 @@ OrderUtils.copyOrder = function (pSourceOrderId, pOrderData, pCopyLinks)
         params["Links_param"] = JSON.stringify(links);
     }
     
-    neon.openContext("Order", null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Order", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 
 
@@ -469,7 +472,8 @@ OrderUtils.buildOrderReport = function (pOrderID)
  */
 OrderUtils.openOrderReport = function (pOrderID)
 {    
-    neon.openContext("Order", "OrderReport_view", [pOrderID], neon.OPERATINGSTATE_VIEW, null, true);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([pOrderID]).toString();
+    neon.openContextWithRecipe("Order", "OrderReport_view", neon.OPERATINGSTATE_VIEW, recipe, true);
 }
 
 /**
@@ -657,7 +661,8 @@ OrderUtils.buildReminderReport = function (pOrderID)
  */
 OrderUtils.openReminderReport = function (pOrderID)
 {
-    neon.openContext("Order", "OrderReminderReport_view", [pOrderID], neon.OPERATINGSTATE_VIEW, null, true);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([pOrderID]).toString();
+    neon.openContextWithRecipe("Order", "OrderReminderReport_view", neon.OPERATINGSTATE_VIEW, recipe, true);
 }
 
 
diff --git a/process/Organisation_lib/process.js b/process/Organisation_lib/process.js
index 735a0af10761b2b84fde48a3744f0c71977050fc..64e18a9fc4c489e385ac9df52d14509251762e59 100644
--- a/process/Organisation_lib/process.js
+++ b/process/Organisation_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.project");
 import("system.neon");
 import("Util_lib");
@@ -250,7 +251,8 @@ var activityData = activityQuery.table()
  */
 OrgUtils.openOrgReport = function(pContactId)
 {
-    neon.openContext("Organisation", "OrganisationReport_view", [pContactId], neon.OPERATINGSTATE_VIEW, null);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().uidsIncludelist([pContactId]).toString();
+    neon.openContextWithRecipe("Organisation", "OrganisationReport_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**
diff --git a/process/Salesproject_lib/process.js b/process/Salesproject_lib/process.js
index 79246a7b3dc35d3602432b0e8ff70fd87dd2e4b8..63a25da738eb0521413d53db4f0ebda63581b4cb 100644
--- a/process/Salesproject_lib/process.js
+++ b/process/Salesproject_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Contact_lib");
 import("Person_lib");
 import("system.datetime");
@@ -111,10 +112,13 @@ Salesproject.createNewSalesproject= function(pRelationId)
 {
     var params = {};
     
-    if (pRelationId)
+    if(pRelationId)
+    {
         params["ContactId_param"] = pRelationId;
+    }
     
-    neon.openContext("Salesproject", null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Salesproject", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /**
diff --git a/process/ServiceEmail_lib/process.js b/process/ServiceEmail_lib/process.js
index 5fc836f7868b1fb57e780dd78cb9a0bdfaec821b..c4b86c101927202b198c9c0125237c6133907b84 100644
--- a/process/ServiceEmail_lib/process.js
+++ b/process/ServiceEmail_lib/process.js
@@ -285,11 +285,11 @@ function getSignatureWithoutPlaceholder(pDocumentContent)
 /**
  *  @description   create the email body for the answer email
  *  
- *  @param {String}      pDocumentTemplate the documenttemplate used to create the first part of the mail
- *  @param {String}      pSignature the signature to be added below the documentTemplate
- *  @param {String}      phistoryEmailText the original mail added at the bottom of the mail
+ *  @param {String} pDocumanteTemplate the documenttemplate used to create the first part of the mail
+ *  @param {String} pSignature the signature to be added below the documentTemplate
+ *  @param {String} pHistoryEmailText the original mail added at the bottom of the mail
  *  
- *  @return     string the signature without placeholder
+ *  @return {String} the signature without placeholder
  */ 
 function createBodyEmail(pDocumanteTemplate, pSignature, pHistoryEmailText)
 {
diff --git a/process/Ticket_lib/process.js b/process/Ticket_lib/process.js
index b04606139a0fa727898edd989b312b7dbd0b06ad..21d768956097af059d4fc31ac06f59c6b685efbb 100644
--- a/process/Ticket_lib/process.js
+++ b/process/Ticket_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Context_lib");
 import("system.neon");
 import("system.question");
@@ -216,7 +217,7 @@ TicketUtils.openNewSupportticket = function( pStr_pirmaryKeyId, pStr_contextName
         "PresetLinks_param": JSON.stringify( arr_links)
     };
 
-    neon.openContext("SupportTicket", "SupportTicketEdit_view", null, neon.OPERATINGSTATE_NEW, obj_links);
+    neon.openContextWithRecipe("SupportTicket", "SupportTicketEdit_view", neon.OPERATINGSTATE_NEW, neonFilter.createEntityRecordsRecipeBuilder().parameters(obj_links).toString());
     return true;
 }
 
@@ -237,6 +238,6 @@ TicketUtils.openNewSupportticketWithLinks = function( pArr_linksParams)
     var obj_links = {
         "PresetLinks_param": JSON.stringify( pArr_linksParams)
     }
-    neon.openContext("SupportTicket", "SupportTicketEdit_view", null, neon.OPERATINGSTATE_NEW, obj_links);
+    neon.openContextWithRecipe("SupportTicket", "SupportTicketEdit_view", neon.OPERATINGSTATE_NEW, neonFilter.createEntityRecordsRecipeBuilder().parameters(obj_links).toString());
     return true;
 }
\ No newline at end of file
diff --git a/process/Timetracking_lib/process.js b/process/Timetracking_lib/process.js
index 515d922a39f50ec7da63cf26ca307ed2df3d34ad..f1d9d2ea1eb4a9eb830d5a1043d0c35f28f6aad3 100644
--- a/process/Timetracking_lib/process.js
+++ b/process/Timetracking_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("Sql_lib");
 import("system.db");
 import("system.neon");
@@ -45,7 +46,8 @@ Timetracking.createNewTimeTracking = function (pRowId)
         "RowId_param" : pRowId
     };
     
-    neon.openContext("Timetracking", null, null, neon.OPERATINGSTATE_NEW, params);
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters(params).toString();
+    neon.openContextWithRecipe("Timetracking", null, neon.OPERATINGSTATE_NEW, recipe);
 }
 
 /*
diff --git a/process/Workflow_lib/process.js b/process/Workflow_lib/process.js
index ea29726019519a5c016234f70c75cb679c52a364..c2a4eca6f1ec9620fc8aab4ed66dd5b58f63265c 100644
--- a/process/Workflow_lib/process.js
+++ b/process/Workflow_lib/process.js
@@ -1,3 +1,4 @@
+import("system.neonFilter");
 import("system.db");
 import("Employee_lib");
 import("system.process");
@@ -56,12 +57,13 @@ WorkflowUtils.openNewInstance = function (pVariables, pTargetIds, pTargetContext
     
     Object.assign(pVariables, WorkflowVariables.getTargetVariables(pTargetIds, pTargetContext));
     
-    neon.openContext("WorkflowLauncher", "WorkflowLauncherEdit_view", null, neon.OPERATINGSTATE_VIEW, {
+    var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({
         "ProcessVariables_param": JSON.stringify(pVariables),
         "TargetContext_param": pVariables[WorkflowVariables.TARGET_CONTEXT()],
         "TargetFilter_param": pSelectionFilter ? JSON.stringify(pSelectionFilter) : "",
         "Targets_param": JSON.stringify(pTargetIds)
-    });
+    }).toString();
+    neon.openContextWithRecipe("WorkflowLauncher", "WorkflowLauncherEdit_view", neon.OPERATINGSTATE_VIEW, recipe);
 }
 
 /**