diff --git a/entity/Appointment_entity/entityfields/summary/valueProcess.js b/entity/Appointment_entity/entityfields/summary/valueProcess.js
index a4d1b36dc624e960a27effba219d86929cd19927..432475ace31148f4466c021837b49896e0a6fc45 100644
--- a/entity/Appointment_entity/entityfields/summary/valueProcess.js
+++ b/entity/Appointment_entity/entityfields/summary/valueProcess.js
@@ -12,22 +12,4 @@ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$para
 
     if(event[calendars.SUMMARY])
         result.string(event[calendars.SUMMARY]);
-}
-
-
-
-//if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.Entry_param"))
-//{
-//    var uiVal = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.SUMMARY"));
-//    var paramVal = JSON.parse(vars.getString("$param.Entry_param"))[calendars.SUMMARY];
-//    
-//    logging.log("os: " + vars.get("$sys.operatingstate"));
-//    logging.log("rs: " + vars.get("$sys.recordstate"));
-//    logging.log("paramVal: " + paramVal);
-//    logging.log("uiVal: " + uiVal);
-//    
-//    if(uiVal === paramVal || !uiVal)
-//        result.string(paramVal);
-//    else if(uiVal && !uiVal.equals(paramVal))
-//        result.string(uiVal);
-//}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
index ae84c4565054abc7f4bc589d1c1033627fd86d8a..624e6ab676bde0376df0cfdd60d90280cfd596aa 100644
--- a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
@@ -44,19 +44,7 @@ if(vars.exists("$param.Entry_param") && vars.get("$param.Entry_param"))
     } else {
         rrule = entry[calendars.RRULE] != null ? entry[calendars.RRULE][0] : null;
     }
-    
-//    if(entry["AppLinkContext"] && entry["AppLinkId"])
-//    {
-//        logging.log("hier geht lohos... " + uid + " id");
-//        neon.addRecord("AppointmentLinks",
-//        {
-//            "AB_APPOINTMENTLINKID" : util.getNewUUID(),
-//            "APPOINTMENT_ID" : vars.get("$field.UID"),
-//            "OBJECTID" : entry["AppLinkId"],
-//            "OBJECTTYPE" : entry["AppLinkContext"]
-//        });
-//    }
-   
+
     //@TODO Icon 
     result.object([
         [
diff --git a/entity/AttributeRelation_entity/entityfields/alter/children/edit/onActionProcess.js b/entity/AttributeRelation_entity/entityfields/alter/children/edit/onActionProcess.js
index 0df02773059d2058571dabe2f4ae6ae67262b001..29e10aa3f5c2a6a3246b668ed1fbaf7275ebad63 100644
--- a/entity/AttributeRelation_entity/entityfields/alter/children/edit/onActionProcess.js
+++ b/entity/AttributeRelation_entity/entityfields/alter/children/edit/onActionProcess.js
@@ -14,7 +14,6 @@ if (vars.exists("$sys.selectionRows") && vars.get("$sys.selectionRows").length >
         "FilteredAttributeIds_param" : vars.get("$param.FilteredAttributeIds_param"),
         "IsNew_param" : row.UID[0] == "," // if first char is "," it is a newly generated UUID
     };
-    logging.log(params.toSource())
     var operatingState = row.VALUE ? neon.OPERATINGSTATE_EDIT : neon.OPERATINGSTATE_NEW;    // V--- remove "," if it exists
     neon.openContext("AttributeRelation", "AttributeRelationTreeEdit_view", [row.UID[0] == "," ? row.UID.substr(1) : row.UID], operatingState, params);
 }
\ No newline at end of file
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js b/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js
index cf0aff000c15dce3257858a8bba1b1af463ccb12..0793c38ad2f30cfcbaa07f177b100722f69d9a16 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/contentProcess.js
@@ -53,15 +53,14 @@ else if (showEmpty || rowId)
         subCondition.andPrepare("AB_ATTRIBUTERELATION.OBJECT_ROWID", rowId);
         if (objectType != null)
             subCondition.andPrepare("AB_ATTRIBUTERELATION.OBJECT_TYPE", objectType);
-        
-        attributeRelationJoin += " and " + subCondition;
-        sqlCondition.preparedValues = subCondition.preparedValues.concat(sqlCondition.preparedValues);
+        if (subCondition.isSet())
+            attributeRelationJoin += " and " + db.translateCondition(subCondition.build("1=1"));
+        // add condition to match all returned by joins (override default 1=2 of build)
+        sqlCondition.and("1=1");
     }
     if (vars.exists("$param.FilteredAttributeIds_param") && vars.getString("$param.FilteredAttributeIds_param"))
     {
-        logging.log("------------------------ " + vars.getString("$param.FilteredAttributeIds_param") )
         let filteredIds = JSON.parse(vars.getString("$param.FilteredAttributeIds_param"));
-                logging.log(filteredIds.toSource())
 
         subCondition.clear();
         let filteredIdChildren = AttributeUtil.getAllChildren(filteredIds);
diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
index 2bec300e9099be553558f3d1dced6fdd87b3776d..afc7197e97741a8914e184539f8ec6933eab979a 100644
--- a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js
@@ -15,8 +15,6 @@ var columns = [
 ];
 
 var uid = vars.get("$field.UID");
-logging.log(uid)
-logging.log(vars.get("$param.ObjectRowId_param"))
 var values = [
     uid[0] == "," ? uid.substr(1) : uid, // if first char is "," it is a newly generated UUID
     vars.get("$field.AB_ATTRIBUTE_ID"),
diff --git a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js
index 9f4ea8e69bbfc91043d37e8a4e16fcabe734c6ee..7e1362aa7c3ee46625377c8b4900398d8433d334 100644
--- a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js
@@ -49,7 +49,6 @@ else if (getGroups) //if getGroups == true, it is the lookup for selecting the s
 }
 else if (objectType)  //if there's an objectType, it comes from the AttributeRelation entity
 {
-    logging.log(vars.get("$param.FilteredAttributeIds_param"))
     var filteredAttributes = null;
     
     if (vars.exists("$param.FilteredAttributeIds_param") && vars.getString("$param.FilteredAttributeIds_param")) {
diff --git a/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js b/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js
index 831476ba403437a7daf461addecbe7f25adbd6a2..dfe9d2cc49d0f8eca37575b7bfb56e313f7e26c5 100644
--- a/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js
+++ b/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js
@@ -1,81 +1,74 @@
-import("system.logging");
-import("system.vars");
-import("system.db");
-import("system.util");
-import("Campaign_lib");
-
-
-logging.log("CampaignAddPs jdito oninsert -> ");
-
-var campaignId     = vars.getString("$field.CAMPAIGN_ID");
-var newCampaignStepId = vars.getString("$field.CAMPAIGNSTEP_ID");
-var participants   = JSON.parse(vars.getString("$param.campaignParticipants_param"));
-
-var isUpdate = vars.get("$field.isUpdate");
-logging.log("onInsert isUpdate -> " + isUpdate);
-var colNamesCampaignParticipantLog = CampaignUtils.getParticipantLogInsertColumnNames();
-
-var cols = [];
-
-if(isUpdate == "true")
-{
-    cols = [ "CAMPAIGNSTEP_ID",
-              "USER_EDIT",
-              "DATE_EDIT"
-            ];
-}
-else
-{
-    cols = [ "CAMPAIGNPARTICIPANTID"
-    ,"CONTACT_ID"
-    ,"CAMPAIGN_ID"
-    ,"CAMPAIGNSTEP_ID"
-    ,"USER_NEW"
-    ,"DATE_NEW"
-    ];
-}
-
-var statementArray = [];
-var logArray = [];
-logging.log("isUpdate -> " + isUpdate);
-for (participant in participants)
-{
-    var campaignParticipantLogId = util.getNewUUID();
-    if(isUpdate == "true")
-    {
-        let updatedValues = [newCampaignStepId,
-                        vars.get("$sys.user"),
-                        vars.get("$sys.date")];
-        
-        let condition = "CAMPAIGNPARTICIPANTID = '" + participants[participant] + "'";
-        logging.log("condition -> " + condition);
-        let valsCampaignParticipantLog = new Array(participants[participant], campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date"));
-        
-        statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, updatedValues, condition]);
-        logArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]);
-    }
-    else
-    {
-        let campaignParticipantId = util.getNewUUID();
-    
-        var valsCampaignParticipant = [ campaignParticipantId
-        , participants[participant]
-        , campaignId
-        , newCampaignStepId
-        , vars.get("$sys.user")
-        , vars.get("$sys.date")
-        ];
-
-        let valsCampaignParticipantLog = new Array(campaignParticipantId, campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date"));
-
-        statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, valsCampaignParticipant]);
-        logArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]);
-    }
-}
-
-if(isUpdate == "true")
-    db.updates(statementArray)
-else
-    db.inserts(statementArray);
-
+import("system.logging");
+import("system.vars");
+import("system.db");
+import("system.util");
+import("Campaign_lib");
+
+var newCampaignStepId = vars.getString("$field.CAMPAIGNSTEP_ID");
+var participants   = JSON.parse(vars.getString("$param.campaignParticipants_param"));
+
+var isUpdate = vars.get("$field.isUpdate");
+var colNamesCampaignParticipantLog = CampaignUtils.getParticipantLogInsertColumnNames();
+
+var cols = [];
+
+if(isUpdate == "true")
+{
+    cols = [ "CAMPAIGNSTEP_ID",
+              "USER_EDIT",
+              "DATE_EDIT"
+            ];
+}
+else
+{
+    cols = [ "CAMPAIGNPARTICIPANTID"
+    ,"CONTACT_ID"
+    ,"CAMPAIGN_ID"
+    ,"CAMPAIGNSTEP_ID"
+    ,"USER_NEW"
+    ,"DATE_NEW"
+    ];
+}
+
+var statementArray = [];
+var logArray = [];
+for (participant in participants)
+{
+    var campaignParticipantLogId = util.getNewUUID();
+    if(isUpdate == "true")
+    {
+        let updatedValues = [newCampaignStepId,
+                        vars.get("$sys.user"),
+                        vars.get("$sys.date")];
+        
+        let condition = "CAMPAIGNPARTICIPANTID = '" + participants[participant] + "'";
+        let valsCampaignParticipantLog = new Array(participants[participant], campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date"));
+        
+        statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, updatedValues, condition]);
+        logArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]);
+    }
+    else
+    {
+        let campaignParticipantId = util.getNewUUID();
+    
+        var valsCampaignParticipant = [ campaignParticipantId
+        , participants[participant]
+        , campaignId
+        , newCampaignStepId
+        , vars.get("$sys.user")
+        , vars.get("$sys.date")
+        ];
+
+        let valsCampaignParticipantLog = new Array(campaignParticipantId, campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date"));
+
+        statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, valsCampaignParticipant]);
+        logArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]);
+    }
+}
+
+if(isUpdate == "true")
+    db.updates(statementArray)
+else
+    db.inserts(statementArray);
+
 db.inserts(logArray);
\ No newline at end of file
diff --git a/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js b/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js
index 81ff72936b429b44c1abbab7c2042494ee81c1b3..4a29c1d9492f5767026ff32787a8d4f95adeb6e9 100644
--- a/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js
+++ b/entity/CampaignAnalysis_entity/entityfields/costsperparticipant/valueProcess.js
@@ -2,6 +2,4 @@ import("system.logging");
 import("system.result");
 import("system.vars");
 
-logging.log(parseFloat(vars.getString("$field.TotalCosts")))
-logging.log(parseInt(vars.get("$field.ParticipantCount")))
 result.string(parseFloat(vars.getString("$field.TotalCosts")) / parseInt(vars.get("$field.ParticipantCount")));
\ No newline at end of file
diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js
index 0a6d659c6ce9833e431b4da628a05a11dcf65dd7..b1f0c22e179404f5a3c61a56eed1779a80cb3331 100644
--- a/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js
+++ b/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js
@@ -1,7 +1,6 @@
-import("system.logging");
-import("system.result");
-import("system.vars");
-
-logging.log("$param.ContactId_param -> " + vars.get("$param.ContactId_param"));
-if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param"))
+import("system.logging");
+import("system.result");
+import("system.vars");
+
+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/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js b/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js
index 5c0b77f8819d8c7ff522a3d6b911cd45bc6c54ce..840b658a0b90b2a2ecf183c0438dc912309fd66f 100644
--- a/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js
+++ b/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js
@@ -2,13 +2,8 @@ import("system.logging");
 import("system.vars");
 import("system.neon");
 import("Campaign_lib");
-logging.log("inOnAction -> ");
-    logging.log("sys selection -> " + vars.getString("$sys.selection"));
+
 if(vars.exists("$sys.selection")) //selektierte IDs als Array
 {
-    logging.log("campaignid -> " + vars.get("$field.CAMPAIGN_ID"));
-    logging.log("campaignstepid -> " + vars.get("$field.CAMPAIGNSTEP_ID"));
-    logging.log("contact id -> " + vars.get("$field.CONTACT_ID"));
-    logging.log("sys selection -> " + vars.getString("$sys.selection"));
     CampaignUtils.openSetCampaignStepView(vars.getString("$sys.selection"), vars.get("$field.CAMPAIGN_ID"), vars.get("$field.CAMPAIGNSTEP_ID"));
 }
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js
index 1925acf1cecf4965abceda892b622a1b017c71df..a185eb0f0666c03f9cbc341d2c59c94c67a3bbdb 100644
--- a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js
+++ b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js
@@ -1,6 +1,5 @@
-import("system.logging");
-import("system.result");
-import("system.vars");
-
-logging.log("CS_entity_CPCOnsumer_CSId_param: field.CAMPAIGNSTEPID ->" + vars.getString("$field.CAMPAIGNSTEPID"));
+import("system.logging");
+import("system.result");
+import("system.vars");
+
 result.string(vars.getString("$field.CAMPAIGNSTEPID"));
\ No newline at end of file
diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod
index acc6b15be323078e822915385e1d2efa402f6835..7866082ab397d3cfa3a6d234682575cffe3a5d89 100644
--- a/entity/Campaign_entity/Campaign_entity.aod
+++ b/entity/Campaign_entity/Campaign_entity.aod
@@ -6,6 +6,7 @@
   <title>Campaign</title>
   <contentTitleProcess>%aditoprj%/entity/Campaign_entity/contentTitleProcess.js</contentTitleProcess>
   <afterUiInit>%aditoprj%/entity/Campaign_entity/afterUiInit.js</afterUiInit>
+  <iconId>VAADIN:GROUP</iconId>
   <imageProcess>%aditoprj%/entity/Campaign_entity/imageProcess.js</imageProcess>
   <titlePlural>Campaigns</titlePlural>
   <recordContainer>db</recordContainer>
diff --git a/entity/Notification_entity/entityfields/icon/colorProcess.js b/entity/Notification_entity/entityfields/icon/colorProcess.js
index 129bacab499ca6dc5ed540a1ec8805593b9fb492..0719d0df451536616c859ebda96ed25a79f8dfbe 100644
--- a/entity/Notification_entity/entityfields/icon/colorProcess.js
+++ b/entity/Notification_entity/entityfields/icon/colorProcess.js
@@ -14,8 +14,6 @@ var resolvedPrio = vars.get("$field.RESOLVEDPRIORITY");
 
 if(resolvedPrio != null && resolvedPrio != "")
 {
-//    logging.log("resolvedPrio: " + resolvedPrio);
-
     switch(resolvedPrio)
     {
         case "LOW":
diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod
index a1a484ac0010b20de995f1be8317ae4a8debaf59..2a5bcd1a989a21127d3f813c6e32c93213d095a3 100644
--- a/entity/Object_entity/Object_entity.aod
+++ b/entity/Object_entity/Object_entity.aod
@@ -92,6 +92,12 @@
         <entityName>Organisation_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Persons</name>
@@ -100,6 +106,12 @@
         <entityName>Person_entity</entityName>
         <fieldName>#PROVIDER</fieldName>
       </dependency>
+      <children>
+        <entityParameter>
+          <name>ExcludedContactIds_param</name>
+          <valueProcess>%aditoprj%/entity/Object_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
     </entityConsumer>
     <entityConsumer>
       <name>Offers</name>
diff --git a/entity/Object_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js b/entity/Object_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c5bba8e3b6fddb019149b80621761500e8514de
--- /dev/null
+++ b/entity/Object_entity/entityfields/organisations/children/excludedcontactids_param/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.result");
+
+if (vars.exists("$param.ExcludedObjectIds_param") && vars.get("$param.ExcludedObjectIds_param"))
+{
+    result.string(vars.get("$param.ExcludedObjectIds_param"))
+}
\ No newline at end of file
diff --git a/entity/Object_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js b/entity/Object_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c5bba8e3b6fddb019149b80621761500e8514de
--- /dev/null
+++ b/entity/Object_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.vars");
+import("system.result");
+
+if (vars.exists("$param.ExcludedObjectIds_param") && vars.get("$param.ExcludedObjectIds_param"))
+{
+    result.string(vars.get("$param.ExcludedObjectIds_param"))
+}
\ No newline at end of file
diff --git a/entity/Object_entity/recordcontainers/jdito/contentProcess.js b/entity/Object_entity/recordcontainers/jdito/contentProcess.js
index 23bd71b57278945a999bef861602850936dc5b10..932e731251c23666c267719d92e6cef41b191f71 100644
--- a/entity/Object_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Object_entity/recordcontainers/jdito/contentProcess.js
@@ -4,6 +4,9 @@ import("system.result");
 import("Context_lib");
 
 
+// NOTE THAT THIS ENTITY USES THE TARGET_CONSUMER_PROCESSES OF THE PROVIDERS
+// --> THIS PROCESS WON'T NOT BE EXECUTED IN SOME CASES.
+
 if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"))
 {
     var excludedIds = [];
diff --git a/entity/Organisation_entity/entityfields/attributeconditions/children/objectrowid_param/valueProcess.js b/entity/Organisation_entity/entityfields/attributeconditions/children/objectrowid_param/valueProcess.js
index 843f2af2a341f31f577c7eb1ae71d7a93f801e54..544b24e56e0b61ef04e8781b1118b0fa3e7234e4 100644
--- a/entity/Organisation_entity/entityfields/attributeconditions/children/objectrowid_param/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/attributeconditions/children/objectrowid_param/valueProcess.js
@@ -1,7 +1,5 @@
-import("system.logging");
-import("system.vars");
-import("system.result");
-
-logging.log(vars.get("$field.ORGANISATIONID").toSource())
-
+import("system.logging");
+import("system.vars");
+import("system.result");
+
 result.string(vars.get("$field.ORGANISATIONID"));
\ No newline at end of file
diff --git a/entity/Person_entity/entityfields/newappointment/onActionProcess.js b/entity/Person_entity/entityfields/newappointment/onActionProcess.js
index cbac8ad41e41513be9e504bc9ec8c19bdb01f82c..06f4097b06be928f47733341d1b00e08c28ae0f4 100644
--- a/entity/Person_entity/entityfields/newappointment/onActionProcess.js
+++ b/entity/Person_entity/entityfields/newappointment/onActionProcess.js
@@ -6,8 +6,6 @@ import("Calendar_lib");
 import("system.date");
 import("Context_lib");
 
-logging.log("person: " + vars.get("$field.PERSONID"));
-
 var params = {};
 params["Entry_param"] = JSON.stringify(CalendarUtil.createEntry(calendars.VEVENT, "", "", false, ContextUtils.getCurrentContextId(), vars.get("$field.CONTACTID")));
 
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
index 183069042531a5d6667e650d90e9987910af4e05..9fc98a92cb538970b95f286f69fa5bb7c08d7e7b 100644
--- a/entity/Task_entity/Task_entity.aod
+++ b/entity/Task_entity/Task_entity.aod
@@ -4,6 +4,7 @@
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/Task_entity/documentation.adoc</documentation>
   <title>Task</title>
+  <contentTitleProcess>%aditoprj%/entity/Task_entity/contentTitleProcess.js</contentTitleProcess>
   <afterUiInit>%aditoprj%/entity/Task_entity/afterUiInit.js</afterUiInit>
   <onValidation>%aditoprj%/entity/Task_entity/onValidation.js</onValidation>
   <iconId>VAADIN:TASKS</iconId>
@@ -90,6 +91,7 @@
       <consumer>KeywordTypes</consumer>
       <groupable v="true" />
       <searchable v="true" />
+      <state>READONLY</state>
       <valueProcess>%aditoprj%/entity/Task_entity/entityfields/type/valueProcess.js</valueProcess>
       <displayValueProcess>%aditoprj%/entity/Task_entity/entityfields/type/displayValueProcess.js</displayValueProcess>
     </entityField>
diff --git a/entity/Task_entity/contentTitleProcess.js b/entity/Task_entity/contentTitleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..42200983cd942d93065d3728601f40eb2cc2d4ad
--- /dev/null
+++ b/entity/Task_entity/contentTitleProcess.js
@@ -0,0 +1,4 @@
+import("system.vars");
+import("system.result");
+
+result.string(vars.get("$field.TYPE.displayValue"))
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js b/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js
index dbe747ea65fdc83be8efe56fe8db7892c9407345..670a9d499d47fe6f49455af7ccbc1af4e6652f49 100644
--- a/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js
+++ b/entity/Task_entity/entityfields/attributes/children/filteredattributeids_param/valueProcess.js
@@ -3,5 +3,4 @@ import("system.vars");
 import("system.result");
 import("ActivityTask_lib");
 
-logging.log("-- " + TaskUtils.getTypeAttributes(vars.get("$field.TYPE")).toSource());
 result.object(TaskUtils.getTypeAttributes(vars.get("$field.TYPE")));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/status/valueProcess.js b/entity/Task_entity/entityfields/status/valueProcess.js
index 0ae2702e8cad2f143b558ac0d45739790e38be5d..5395a0b51db583589e21384f42edd51e3ff00a95 100644
--- a/entity/Task_entity/entityfields/status/valueProcess.js
+++ b/entity/Task_entity/entityfields/status/valueProcess.js
@@ -12,12 +12,10 @@ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
     var states = KeywordUtils.getEntryNamesAndIdsByContainer(TaskUtils.getTypeStatusKeyword(vars.get("$field.TYPE")))
     if (states.length > 0)
     {
-        logging.log(states[0][0])
         result.string(states[0][0]);
     }
     else
     {
-        logging.log(states.toSource())
         result.string("");
     }
 }
\ No newline at end of file
diff --git a/neonView/TaskEdit_view/TaskEdit_view.aod b/neonView/TaskEdit_view/TaskEdit_view.aod
index a3815e25d5e276ce1b39a1bb7205c2ece77c8382..4d44b6272b1c108cfaa569dc452c7f1331c31461 100644
--- a/neonView/TaskEdit_view/TaskEdit_view.aod
+++ b/neonView/TaskEdit_view/TaskEdit_view.aod
@@ -13,6 +13,10 @@
       <editMode v="true" />
       <entityField>#ENTITY</entityField>
       <fields>
+        <entityFieldLink>
+          <name>f8dcc490-1b86-47c3-88fa-8005f8e0095b</name>
+          <entityField>TYPE</entityField>
+        </entityFieldLink>
         <entityFieldLink>
           <name>fb5768fe-2dd2-45cd-8d21-f20af279f409</name>
           <entityField>SUBJECT</entityField>
diff --git a/neonView/TaskFilter_view/TaskFilter_view.aod b/neonView/TaskFilter_view/TaskFilter_view.aod
index 989886738874f490491f038f6a63380448e3fe53..36538160f32f47a8e26957c0e5fec4b32d4fd0e5 100644
--- a/neonView/TaskFilter_view/TaskFilter_view.aod
+++ b/neonView/TaskFilter_view/TaskFilter_view.aod
@@ -34,6 +34,7 @@
   <children>
     <timelineViewTemplate>
       <name>TasksTimeline</name>
+      <favoriteActionGroup1>tableActions</favoriteActionGroup1>
       <dateField>MATURITY_DATE</dateField>
       <titleField>SUBJECT_DETAILS</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
diff --git a/process/Email_lib/process.js b/process/Email_lib/process.js
index ac0feee222fabc11b981d42c676b9d48b4bd6019..d989322ceebd8950e757df4344cdeed8c29d2863 100644
--- a/process/Email_lib/process.js
+++ b/process/Email_lib/process.js
@@ -81,7 +81,6 @@ Email.prototype.setTemplate = function (pTemplateId, pContactId)
     //TODO: also set other properties if the template is a eml
     if (template)
         this.body = template.getReplacedContentByContactId(pContactId);
-    logging.log(this.body)
 }
 
 /**
diff --git a/process/Importer_lib/process.js b/process/Importer_lib/process.js
index a693e85cf7ed62c81e6dfed7f74471cd8b759a70..fe2913476193d23a48cf7eef1dc743a965d00756 100644
--- a/process/Importer_lib/process.js
+++ b/process/Importer_lib/process.js
@@ -7,7 +7,6 @@ import("system.fileIO");
 import("system.swing");
 import("system.util");
 import("system.text");
-import("ErrorHandling_lib");
 import("ImporterCustomMappingFunctions_lib");
 import("ImporterMappingFunctions_lib");
 
@@ -402,7 +401,7 @@ function Importer(pConfig)
                     {
                         logging.log(ex["rhinoException"] != undefined ? ex["rhinoException"] : ex)
                         this.writeLog(this.LogLevels.Error, "Exception in mapping function [" + fname + "] for input row " + this.recordCounts.total+ " - " + this.Config.Mapping[i][1]["Target"]);                       
-                        recordStack.exception = errorHandling.getClearMessage(ex)+  " -  Column: " + this.Config.Mapping[i][1]["Target"];
+                        recordStack.exception = logging.toLogString(ex["rhinoException"] != undefined ? ex["rhinoException"] : ex, true) +  " -  Column: " + this.Config.Mapping[i][1]["Target"];
                         skip = true;
 
                     }
@@ -650,7 +649,7 @@ function Importer(pConfig)
                         this.writeLog(this.LogLevels.Error, "Error at " + (insertSuccessfull ? "" : "Insert") + (updateSuccessfull ? "": "Update") + ":" + logging.toLogString(ex));
                         logging.log(ex["rhinoException"] != undefined ? ex["rhinoException"] : ex)
                         this.recordCounts.skip++;
-                        recordStack.exception = errorHandling.getClearMessage(ex);
+                        recordStack.exception = logging.toLogString(ex["rhinoException"] != undefined ? ex["rhinoException"] : ex, true);
                         
                         if(this.insertArray.length > 0 && !insertSuccessfull) {
                             this.writeLog(this.LogLevels.Info, "Insert array: " + JSON.stringify(this.insertArray, null, " "));
diff --git a/process/Notification_lib/process.js b/process/Notification_lib/process.js
index 3b87c821178df7a03a021f0322e5be6d61a503c1..31db73ecfdc83ea1e38849c4f6b3eb6999daa893 100644
--- a/process/Notification_lib/process.js
+++ b/process/Notification_lib/process.js
@@ -20,6 +20,5 @@ NotificationUtil.chooseRightPrio = function(pForcedPrio, pTypeObject)
     if(defaultPrio && defaultPrio != "NONE")
         prio = defaultPrio;
     
-//    logging.log("lib prio: " + prio);
     return prio;
 }
\ No newline at end of file
diff --git a/process/WsValidation_lib/process.js b/process/WsValidation_lib/process.js
index dbde73c893426456a7afc3cc91f0c4e15e4d6774..24c3432f752201906042cda4cfe644175d1cebc7 100644
--- a/process/WsValidation_lib/process.js
+++ b/process/WsValidation_lib/process.js
@@ -235,7 +235,6 @@ WsValidationUtils.validate = function(pValue, pType, pCountry)
  */
 WsValidationUtils.setAddressFields = function(pFieldToSetToValue)
 {
-    logging.log(vars.getString("$this.value"))
     try 
     {
         var data = JSON.parse(vars.getString("$this.value"));