So you’ve just completed an elegant set of scripts. Maybe it’s a batch load routine to provide lights out data processing and email status reporting. Perhaps it is a process that extracts all the mapping for a location to an excel file. Or maybe it is a process to publish & email the process monitor reports. Whatever the process, you’ve set up a nifty Task Flow that allows an end-user to execute it on demand. Then the next request comes; the process needs to be scheduled to run on some time interval.
Great, how do I do that? How can execute FDM scripts on a scheduled basis? Well I have some good news! FDM has a scheduling component called the Task Manager. This is a Windows based service that will execute any custom script in the application. The Task Manager is a server-side component and is generally installed on the FDM application server. To access it select Start -> Oracle EPM System -> Financial Data Quality Management -> Task Manager -> Task Manager. The Task Manager program will open and the list of scheduled tasks is displayed – if any exist.
Let’s take a moment to review the control buttons which I have highlighted in yellow. Starting from the left. The first button will create a new task. The next will modify the task that is selected in the Task List section. The third will delete the scheduled task. The fourth starts the Task Manager. This is not to be confused with starting the Windows service. If the Windows service is not started, the task manager will not run – even if you click the Start button. The next button is the stop button which will stop/disable the Task Manager. This will stop all scheduled tasks from running. We’ll discuss stopping/disabling individual scheduled task in a moment. The stop button should not be confused with stopping the Windows service. Finally the status refresh button can be used to refresh the Task Manager list panel to get the most recent execution status.
Ok let’s talk about actually creating a scheduled task. Click the New scheduled task button and a new dialogue box opens.
The first tab is the General Tab. The first field is the name of the task. You should enter something that helps you identify the process that is running. The next field is the FDM application where the script should be run. The next field is the name of the custom script (General, Plug-In or Web) that should be run. Finally, the login section follows.
Let’s take a moment to talk about the login section. First and foremost, this must be an account that has access to the application. For example, if you specify the FDM service account that is set in the load balance manager, then this account needs to be provisioned to the application. Secondly, this account must have the appropriate security in the application to perform the actions specified in the script. For example, if you are running a batch process, the user needs to be an administrator or have access to all locations. Finally, a good practice is to use an account that has a non-expiring password. Think about it for a moment. If you as the administrator use your credentials, what happens when you change your network password. Yep, you guessed it, the task will no longer run (unless you update the login credentials) because the password that is being used is wrong.
As I told you above, we’d get back to enabling/disabling individual tasks. Keeping to my word, finally, there is the Enabled check box. By checking this box (checked by default when creating a new task), the task is active. Unchecking the box disables the individual task but other active scheduled tasks will continue to run.
Great, we’ve established which script in which application to execute. Now we have to work out the schedule. Click the schedule tab.
As you can see from above, there are 3 scheduling options – Seconds interval, by Day of the Week and by Day and Month. Let’s start with the seconds interval. If you select Repeat (default option) as the frequency, you can schedule a task to be executed as frequently as every 60 seconds. “But what if I want it more frequently than that?” Sorry, 60 is the lowest you can go. If you need it more often than that, you really need to take a step back and evaluate what you are trying to do.
In many of my implementations, my automation routines are set to run every 60 seconds. the question I inevitably get from IT is, “what’s the impact to the system running it that frequently/isn’t this going to cause performance problems?” The answer in that case is generally No because the batch process is only doing real work if a file actually exists.
The next frequency available to be is Weekly. This allows me to schedule a task to run on certain days of the week at a set time. So for example, maybe I want to run the batch script Monday-Friday only. Or perhaps I am running the export of all maps (as a backup) every Saturday. This is the frequency that allows me to schedule a day & time based schedule.
Finally, there is the Monthly frequency. This frequency allows me to set a specific day and time in a given month when the process will execute. An example could be that on the first of the month, the application metadata is exported to XML. In my experience, this frequency is rarely used but it does exist and can be used to address your needs.
Once you have set your execution schedule, click OK and your task is scheduled.
And now, my final thought. Yes, you can have multiple scheduled tasks – even for the same application or script. So if you need to run a script every 4 hours between the hours of 8 PM and 8 PM (inclusive), Monday through Friday; you would create 4 Weekly scheduled tasks.
And there you have it – scheduling FDM scripts. All this for the low, low price of nothing – except your time to read this post and deal with my suspect sense of humor. But wait!! If you call in the next 15 minutes (or month), I’ll even throw in a second solution for free, yes FREE – you just have to pay shipping and handling. Come back for my next posting and I’ll discuss another option for scheduling tasks.