Managed Operations

The Managed Operations module allows the end user to fully control the starting and running of any application method in the XAF application. The developer can implement any method as a Managed Operation. The Managed Operations service displays the method execution process in a special View. The user can interrupt, suspend, or resume the process. It is possible to monitor a number of parallel processes. The start of the Managed Operation is logged, the information can be stored in a database.

To see the Managed Operations in action, refer to the Main|Actions|ManagedOperations section in the Xafari Northwind demo installed with Xafari.

Win:

managed_operations_1

The Managed Operations service offers a number of specific features, that allow to implement the execution of the application method in different ways, depending on the needs of the end customer. The key features of the service are listed below:

  • Synchronous or asynchronous Managed Operations
  • Global or local Managed Operations
  • Subprocesses
  • Unique Managed Operations
  • Logging

Let's look at them in detail.

Synchronous or asynchronous Managed Operations

When the Synchronous Managed Operation is run, it is not possible to execute other actions in the client application. You have to wait until the launched operation finishes to continue the work. In  the course of execution of the operation, the user can only monitor the process. Besides the standard monitoring window, the progress of the synchronous operation can be displayed by the progress indicator or infinite scrolling bar.

Win:

managed_operations_2

The Asynchronous Managed Operation supports the execution of the application method without suspending other actions of the application. The user can run multiple instances in parallel.

Web:

managed_operations_3

Subprocesses

The Managed Operation can have a number of subprocesses. Each subprocess is a Managed Operation which is executed as a part of the main operation. The XafariManagedOperations module allows for monitoring the main operation and each subprocess separately. The figure below shows a Detail View of the Managed Operation with subprocesses in the Web application. The list of subprocesses is available on the Child Process tab.

Web:

managed_operations_4

Local and global Managed Operations

The information on starting and running the Managed Operation can be stored in the application database. Such Managed Operation is called Global Managed Operation. It is also possible to execute the operation locally on the client's computer without saving the information to the database. The information is lost after completion of execution of the application. The Managed Operation executed in such manner is called local. By default, all operations are of the global type, though it is possible to change the type of operation at the time of initialization.

Unique Managed Operations

In some cases, it may be required that only one user is able start the operation at any moment in time, and can only do it once. For example, two plan budget calculation processes or two payroll calculation processes can not be run concurrently. The unique Managed Operation implies a ban on the creation of another instance while the operation is being executed. If a unique operation has been started and is currently running, then the user attempting to run another instance will get the respective message, as shown in the figure below.

Win:

managed_operations_5

Logging

Logging allows to save the history of execution of Managed Operations for subsequent review and analysis.

Web:

managed_operations_5_1

It is possible to split the log into sections (blocks). Splitting to blocks is required, if the operation is "heavy", i. e. if large amount of  information is generated in the course of execution. The blocks that contain records with error messages or warnings are marked accordingly. Some blocks with messages of various types are shown in the figure below:

Web:

managed_operations_5_2

It is possible to add to the log, only messages with a defined trace level («Warning», «Error» etc.).

To find out more about the Managed Operations, refer to the following documents: