There is a generic solution available, see JobScheduler Reporting Interface