diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py
index 8c55a6cb86e4b5c16bd8a3005fdb3686804f23d3..7711d288bde9f5d33301ff7b1f510c981238c135 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py
@@ -155,7 +155,7 @@ class RADatabase:
 
         raise KeyError('No such status: %s. Valid values are: %s' % (status_name, ', '.join(self.getResourceClaimStatusNames())))
 
-    def getTasks(self, lower_bound=None, upper_bound=None, task_ids=None):
+    def getTasks(self, lower_bound=None, upper_bound=None, task_ids=None, task_status=None, task_type=None):
         query = '''SELECT * from resource_allocation.task_view'''
 
         conditions = []
@@ -177,6 +177,16 @@ class RADatabase:
                 conditions.append('id in %s')
                 qargs.append(tuple(task_ids))
 
+        task_status, task_type = self._convertTaskTypeAndStatusToIds(task_status, task_type)
+
+        if task_status is not None:
+            conditions.append('status_id = %s')
+            qargs.append(task_status)
+
+        if task_type is not None:
+            conditions.append('type_id = %s')
+            qargs.append(task_type)
+
         if conditions:
             query += ' WHERE ' + ' AND '.join(conditions)
 
diff --git a/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py b/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py
index 0a3edb4b68f6352aed5092909d1ac1c5314a0ed4..0952869f376c9b1d622d8ec0f9c9b01e0df3fb28 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py
@@ -178,8 +178,8 @@ class RARPC(RPCWrapper):
                          otdb_id=otdb_id,
                          status=status)
 
-    def getTasks(self, lower_bound=None, upper_bound=None, task_ids=None):
-        tasks = self.rpc('GetTasks', lower_bound=lower_bound, upper_bound=upper_bound, task_ids=task_ids)
+    def getTasks(self, lower_bound=None, upper_bound=None, task_ids=None, task_status=None, task_type=None):
+        tasks = self.rpc('GetTasks', lower_bound=lower_bound, upper_bound=upper_bound, task_ids=task_ids, task_status=task_status, task_type=task_type)
         for task in tasks:
             task['starttime'] = task['starttime'].datetime()
             task['endtime'] = task['endtime'].datetime()
diff --git a/SAS/ResourceAssignment/ResourceAssignmentService/service.py b/SAS/ResourceAssignment/ResourceAssignmentService/service.py
index 4b4128f5b7b33d2f960d96ecbf9e74cc5c5c52c5..7409475f2d42992d70afefec20c5dd029a6485cb 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentService/service.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentService/service.py
@@ -221,7 +221,9 @@ class RADBHandler(MessageHandlerInterface):
         logger.info('GetTasks: %s' % dict({k:v for k,v in kwargs.items() if v != None}))
         return self.radb.getTasks(lower_bound=kwargs.get('lower_bound').datetime() if kwargs.get('lower_bound') else None,
                                   upper_bound=kwargs.get('upper_bound').datetime() if kwargs.get('upper_bound') else None,
-                                  task_ids=kwargs.get('task_ids'))
+                                  task_ids=kwargs.get('task_ids'),
+                                  task_status=kwargs.get('task_status'),
+                                  task_type=kwargs.get('task_type'))
 
     def _getTask(self, **kwargs):
         logger.info('GetTask: %s' % dict({k:v for k,v in kwargs.items() if v != None}))