there can be multiple freeruns for a single combination of workflow+step+timeperiod
            hence, we have to *recycle* finished UOW

def _reset_flow_uow(self, freerun_entry, uow, flow_request):
        """ there can be multiple freeruns for a single combination of workflow+step+timeperiod
            hence, we have to *recycle* finished UOW """
        process_entry = context.process_context[freerun_entry.process_name]
        arguments = process_entry.arguments
        arguments.update(freerun_entry.arguments)
        arguments.update(flow_request.arguments)

        uow.created_at = datetime.utcnow()
        uow.submitted_at = datetime.utcnow()
        uow.state = unit_of_work.STATE_REQUESTED
        uow.unit_of_work_type = unit_of_work.TYPE_FREERUN
        del uow.started_at
        del uow.finished_at
        del uow.number_of_aggregated_documents
        del uow.number_of_processed_documents
        uow.number_of_retries = 0
        uow.arguments = arguments
        self.uow_dao.update(uow)