diff --git a/process/FilterViewAction_lib/process.js b/process/FilterViewAction_lib/process.js
index ede6618261ac763fd7f7cc05f4a7f3414c5e04fc..7bfa3759b79fd9e4b3fef2faf8c5cb9d5880c9ce 100644
--- a/process/FilterViewAction_lib/process.js
+++ b/process/FilterViewAction_lib/process.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("Util_lib");
 import("system.neon");
 import("Sql_lib");
@@ -23,15 +24,19 @@ function FilterViewActionUtils() {}
 FilterViewActionUtils.getUidsByEntityFilter = function (pContext, pFilter, pParameters)
 {
     if (Utils.isString(pFilter))
-        pFilter = JSON.parse(pFilter);
-    
-    if (Utils.isString(pParameters))
-        pParameters = JSON.parse(pParameters);
-    
-    //uids from Person and Organisation are loaded with simple sql queries because that's much faster than over the entity'
-    if (pContext == "Person" && "condition" in pFilter)
-    {
-        return new SqlBuilder()
+        {
+            pFilter = JSON.parse(pFilter);
+        }
+        if (Utils.isString(pParameters))
+        {
+            pParameters = JSON.parse(pParameters);
+        }
+        
+        //uids from Person and Organisation are loaded with simple sql queries because that's much faster than over the entity'
+        //TODO: design modular + filter recipe
+        if (pContext == "Person" && "condition" in pFilter)
+        {
+            return new SqlBuilder()
             .selectDistinct("CONTACT.CONTACTID")
             .from("PERSON")
             .join("CONTACT", "CONTACT.PERSON_ID = PERSON.PERSONID")
@@ -39,10 +44,10 @@ FilterViewActionUtils.getUidsByEntityFilter = function (pContext, pFilter, pPara
             .leftJoin("ADDRESS", "ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID")
             .whereIfSet(pFilter.condition)
             .arrayColumn();
-    }
-    if (pContext == "Organisation" && "condition" in pFilter)
-    {
-        return new SqlBuilder()
+        }
+        if (pContext == "Organisation" && "condition" in pFilter)
+        {
+            return new SqlBuilder()
             .selectDistinct("CONTACT.CONTACTID")
             .from("ORGANISATION")
             .join("CONTACT", newWhere("ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID").and("CONTACT.PERSON_ID is null"))
@@ -50,22 +55,39 @@ FilterViewActionUtils.getUidsByEntityFilter = function (pContext, pFilter, pPara
             .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = CONTACT.CONTACTID")
             .whereIfSet(pFilter.condition)
             .arrayColumn();
-    }
+        }
+        if(pContext == "Activity" && "condition" in pFilter)
+        {
+            return new SqlBuilder()
+            .selectDistinct("ACTIVITY.ACTIVITYID")
+            .from("ACTIVITY")
+            .leftJoin("CONTACT", "CONTACT.CONTACTID = ACTIVITY.RESPONSIBLE")
+            .leftJoin("PERSON", "PERSON.PERSONID = CONTACT.PERSON_ID")
+            .whereIfSet(pFilter.condition)
+            .arrayColumn();
+        }
     
-    //General solution to get the uids using entities.getRows
-    var loadRowsConfig = entities.createConfigForLoadingRows()
+        //General solution to get the uids using entities.getRows
+        var loadRowsConfig = entities.createConfigForLoadingRows()
         .entity(ContextUtils.getEntity(pContext))
-        .fields(["#UID"])
-    if (pFilter.filter)
-        loadRowsConfig.filter(JSON.stringify(pFilter.filter));
-    
-    if(pParameters)
-        Object.keys(pParameters).forEach(function(key){loadRowsConfig.addParameter(key, pParameters[key])});
+        .fields(["#UID"]);
+        
+        if (pFilter.filter)
+        {
+            loadRowsConfig.filter(JSON.stringify(pFilter.filter));
+        }
     
-    return entities.getRows(loadRowsConfig).map(function (row)
-    {
-        return row["#UID"];
-    });
+        if(pParameters)
+        {
+            Object.keys(pParameters).forEach(function(key){
+                loadRowsConfig.addParameter(key, pParameters[key])
+                });
+        }
+        
+        return entities.getRows(loadRowsConfig).map(function (row)
+        {
+            return row["#UID"];
+        });
 }
 
 /**