The SysOperation framework has four basic modes, what Microsoft calls Execution Modes. Their desirability depends on the situation, of which I'll try to explain briefly.
- Synchronous - This is similar to running a long process on the client. It will lock the client session if the processing takes longer than a few seconds, and the user won't be able to do anything until it is completed.
- Asynchronous - To run a service asynchronously, the service class must have a Service node in the AOT, be a part of the AxClient service group, and the service group must be re-deployed thereafter for the change to take affect. If this isn't done, the service will default to Synchronous which will lock the client session.
- ReliableAsynchronous - The default mode if none is selected. When the processing begins, it creates two asynchronous threads - the first on the batch server and another on the client to poll the batch server to get the infolog when it is completed. When the batch job is completed, it is removed but leaves traceability in Batch Job History.
- ScheduledBatch - This is akin to checking the batch tab, but the user does not get a choice. Even if they did not select to run it on batch, it will. And, it will leave the job in the Batch table in an 'Ended' state when it is complete.