There is an ever-growing need for reports to analyze the mass of data gathered by institutions. Resources to create and execute these reports are limited. An option to reduce the manual component of processing and sending these reports is to use a scheduler to complete these tasks at given times and intervals.
Scheduling is not a new concept. Many reports already run on schedules, but is this an afterthought or an intentional plan when creating the reports? Beginning the report creation process with a scheduling mindset will optimize this process for better results.
What is a scheduling mindset?
A scheduling mindset is the concept that the report will be created in a manner that optimizes the use of a scheduler to process and send it. Considerations are made to the timing and intervals of the report execution. Will the report run on constant intervals or is it based off triggers like the payment of fees or registration of classes? Does the report run two days prior to when salary and wages are dispersed in order to send paystubs to employees?
Reports run at irregular intervals will be designed differently than those with constant intervals. This is covered in the “Scheduling for Irregular Increments” section below. Whatever the scheduling criteria, the finished report is designed for continual use over time instead of only once.
Why is scheduling import?
Scheduled reports reduce manual work. The reports can be scheduled for off-peak times that do not tax the server. The schedules can send the report to whomever or wherever it is needed. Once set, they do not need to be modified unless the conditions of that report or its distribution changes.
Scheduling removes the human factor from running reports. Time is saved for other tasks. The schedule runs the reports at exact times to create consistent intervals for the data collected. When the report is run manually, the timing of its execution is not exact for each interval. There is also a chance that the execution of the report is forgotten (for instance, if the report administrator is out sick). Scheduling ensures that this does not happen.
How to plan a report with a scheduling mindset
What is the audience for this report? Where will the report be sent? Is this a server location, individual, or group? This information is important for reports that are not on a set schedule. It is even more useful in determining how that distribution can be incorporated into the report and, subsequently, the schedule.
Next, determine the frequency in which the report needs to run. Is it daily, weekly, or monthly? Does it only run quarterly or possibly yearly? Even if the requestor does not ask that the report be run on a schedule, consider how that report can benefit from a set schedule. This can make the report more adaptable.
Lastly, look for patterns. Is the same requestor asking for the same report on a regular basis? Are multiple people or departments frequently asking for the same, or similar, reports? If so, work with all parties involved to determine if a scheduled report would be more beneficial.
A scheduling mindset while writing the report
Setting conditions as parameters for scheduling
In determining the conditions for creating the report, consider what conditions can be set as parameters for scheduling. Does the report gather data for a specified length of time prior to its execution? An example is a weekly report that gathers the last seven days of information. Can this be calculated from the system date at the time it’s run?
Is there an academic term or fiscal quarter that the report is based upon? If so, can this condition be set as a parameter selected when running the report? This is a more dynamic option than hardcoding the data. (Hardcoding may be the best option for reports designed to gather data from a variety of past terms or quarters.) It allows the user to select what conditions need to be met for each execution of the report. These parameter values could also be used when creating the schedule for that report.
While setting parameters is a better option than hardcoding, this may not always be the best option for scheduling. A scheduled report created with parameters that need to be changed as time progresses must also have its schedule updated when those parameter values change.
Report determines value of parameter
A better option is to let the report determine the current value for that parameter. If the report is designed to gather information on the current term or fiscal quarter, write the report in a manner that it determines at any given time in which it is run what the current academic term or fiscal quarter is. When on a schedule, no parameters need to be set for this condition. The schedule can run at any interval to gather the current data. A schedule set in this manner could run indefinitely, only needing updates if the conditions on how, when, or to whom it is sent change.
Planning for schedules when schedules are not requested
Many times, requests come through to create a report to run one time only. Yet, there are also many occasions when it is beneficial to run the report multiple times. Once you have the scheduling mindset, it is easy to create reports designed for schedules without requiring much, if any, additional time in the report creation process.
A great example of this is reports for data cleanup. Either manual entry or a system process can enter data incorrectly. Data may also need to be updated to fit into certain schemas. To find this data, reports must be written to find the errors or inconsistencies. While many may consider this a one-time report, this same report can be used after the fact to run continual error checking.
If the report is created to find inconsistencies, that report can be set on a schedule to look for additional inconsistencies once the initial cleanup is finished. This schedule can run at any interval. It can also be set to run indefinitely to always check for these known issues. The same can be done for reports checking to make sure that the schema of the entered data matches the specified conditions.
One of the benefits of error-checking scheduling is that it can be set to run on regular intervals, but only generate reports when it finds errors. Instead of running the report manually when errors are suspected or found through other means, regular checks can more quickly find the errors.
Scheduling for irregular increments
Sometimes reports are run at irregular intervals because the conditions for those intervals are not set by a specified length of time (e.g. weekly or monthly). An example would be a report that runs one week after the beginning of the academic term. The time between these executions would not be consistent. Does this mean that the report cannot be scheduled? No, it only means that additional considerations are needed to create a report that can be scheduled.
In the above example, let us say that the beginning of the term is always a Monday. The report could just be scheduled every Monday. Unfortunately, this would create unwanted and potentially inaccurate reports when the report executes on a Monday that is not one week after the start of a term. However, if the report is written to check the current date against the date for the start of each term (given that the term start dates are included in the database), then this check can be used in a condition for the report. That condition can then be used to determine if the report is generated when executed each Monday. When the report runs on a Monday that is one week after the start of a term, then the report is created and sent. Otherwise the date comparison condition would cause no records to be generated.
Parsing out reports
Another benefit to scheduling is the ability to parse a report to multiple recipients. Some reports contain data for multiple areas. That data may need to be separated into individual reports that are then distributed to those areas. One option is to manually generate, separate, and send those reports. This is both tedious and time consuming. Another option is to create parameters in the report so that the user can select each area one at a time to generate each report. This option is slightly better, but again, the reports must be individually saved and distributed.
There is a third – and better – option. A single report can be written to send the same data to multiple recipients based on conditions set in the report. A report for specific departmental data can be sent separately to each department chair based on the department attached to the gathered data and email address of each chair. This report is created with one schedule and one parsing condition. Time is saved, and the information is accurately separated and distributed.
Scheduling can be a forethought or an afterthought. If it is an afterthought, extra time may be needed to modify the report to maximize the benefits of scheduling. A scheduling mindset will change the way you look at reports, so that a one-time report can become an ongoing report. (That data cleanup report becomes an ongoing error-checking report.) Reports will be delivered more consistently and efficiently. Time will be saved, and the entire process will run more smoothly.