Logic performed on the server enables the creation of many types of useful applications, including workflow applications. Workflow is improved in the following ways:
Exception handling If a recipient of an expense report, for example, is away for several days without access to e-mail, the report would remain unread at that point in its path. When this happens, script logic executed on the server could automatically approve the item, reject it, or send it to the absent recipient's manager.
Routing determination When the expense report (a message) is posted, the script can read message properties, determine where it should go next, and then update the state of the message.
State verification If logic were implemented on the client, the workflow logic would travel with the message and would therefore reside only on individuals' computers. This would make it impossible to check its state (for example: which recipients have responded and which haven't) from a central location. A server-resident script could store and update state information on a server location—such as in the monitored folder—and thus always have access to it.
Data validation An application may need to control the completeness and correctness of items submitted, such as making sure that required properties are present. This is done best when data-validation logic is consolidated in a server script. Then, no matter what form recipients use to post or edit a workflow item, server logic can validate its data. For example, it could check for a department number on an expense report and, if missing, return the message to the sender.
Implementing workflow logic client-side could work for some applications, but it still might require that the server perform time-out monitoring or that user workstations be logged on continuously. Because applications that need successive approval steps are typical, the server-side scripting provided by the Microsoft Exchange Scripting Agent is a more reliable and efficient method than using client-side logic.