One way to do it is to completely separate your application from the logic so that you can write a lightweight application to handle the scheduled tasks and call it on a schedule. Another approach is to write a service or a daemon that has a scheduling component. Alternatively, you can put the code in a Web page and call that page from the operating system's scheduler. Some systems use a "poor man's cron," where when a page is called in the application and there are pending tasks to be run, a secondary process is launched to run the tasks. But no matter how you look at it, the traditional options for having batch processing are not appealing and require additional configuration. In the Agile Platform, task scheduling is built-in and using it is a smooth and natural extension of the rest of the work.
On a side note, the Envelope icon in Figure C is to send an email message, which is one of the very nice features of the Agile Platform. In some systems I have used, you need to create email templates and then populate a collection of values and have the email template filled with macros to substitute values from the collection. In the Agile Platform, you design an email just like a Web page, and it can have its own logic and accept parameters as needed. In this case, my email message takes the account's ID as an argument and has a Preparation Action that looks up all of the needed information to fill out the email. Within the email, you use the same Widgets that you use for the Web screens to display the data you pull. As a result, working with emails is very pleasant and consistent with the rest of the system.
I may create a third Timer to perform the monthly billing. Some credit card gateways can perform recurring billing automatically. If I were to allow the gateway to handle the recurring billing, it would take a bit of the load off of my back in terms of worrying about storing credit card numbers and the associated security concerns with that. It is not that I do not trust myself or the Agile Platform, it is a simple matter of risk mitigation. Why store sensitive data and make yourself a target for hackers if you can help it? But if I allow the credit card gateway to handle the recurring billing, I will need to add gobs of logic to change the billing information as users upgrade and downgrade accounts; it would definitely be far less effort to just have a billing Action that pulls the proper number on a monthly basis and charges that. And, I already have this logic built into my ACCOUNT entity anyway.
I will be making a decision about this third Timer soon. The billing situation, the overall "look and feel," and making the system self-explanatory are my big remaining challenges before I can start marketing Rat Catcher as a full-blown product.
Here is the link : http://www.techrepublic.com/blog/software-engineer/working-with-scheduled-jobs-in-the-outsystems-agile-platform/