Business Operation Class Attributes

DisplayNameAttribute

Use it to specify the display name of the BO. This attribute determines the Caption property in the BO node of the Application Model. For context-dependent BO, DisplayNameAttribute specifies the name of the menu item that is used to start the BO. If the attribute is not specified, then the instance name of the BO class type is used as the display name.

In the Business Operations attributes you can also use the XafDisplayName attribute instead of the DisplayName attribute.

DescriptionAttribute

It is a text description of the Business Operation. This attribute determines the ToolTip property in the BO node of the Application Model. For context-dependent BO, DescriptionAttribute specifies the pop-up tooltip of the menu item that is used to start the BO.

BrowsableAttribute

Defines the UI availability for the appropriate start items (Actions, Navigation Items).

DefaultOperationServiceAttribute

It is the default (current) implementation of the BO. The attribute parameter is an instance of the class that implements the BO. This attribute determines the DefaultImplementation property in the BO node in the Application Model. When executing the Execute (or Rollback) method, the BO redirects the queries to the instance of the implementation class specified in this property.

ImageNameAttribute

This string of characters specifies the name of the icon used for displaying the item that starts the BO in the UI.

BusinessOperationCategoryAttribute

It allows to specify one or several categories which the BO belongs to. One-tier grouping of Business Operations is used when showing the BO in the UI (the Actions menu item and the hierarchical BO list). One BO can belong to a number of categories. The attribute without parameters specifies the default category; an instance of such attribute can be obtained using the Default static property. All BO that belong to this category are displayed in the root list.

ExecutionWayAttribute

Specifies the mode of execution when the BO is started from the UI. Two modes of execution are available: synchronous and asynchronous.

Synchronous BO are executed in the context of a Managed Operation; the progress window is displayed.  At the end of execution and closing the window, the user sees the results of the BO (if it was provided).

In the asynchronous mode, the user only observes a message stating that the BO has started. The Managed Operation object controls and monitors the BO execution. The user has no need to wait until the execution ends. The result of the operation is not displayed separately. The user can see the monitoring information via the list of Managed Operations.

DomainComponentAttribute

It allows the developer to determine an alternative Detail View to input the BO parameters.

By default, if the BO is present in BOModel, then the Detail View for input parameters is generated using a Dynamic Properties Object (see Dynamic Properties). A disadvantage may be the fact that this Detail View cannot be customized in the Model Editor.

If you decorate the BO class with DomainComponentAttribute, then the framework generates a Detail View for the class. It will be automatically used as a form of the BO input parameters. It is possible to customize it via the Model Editor.

You can see an example of such use in the Nortwind.DC demo (see the ChangeFreight Business Operation):

  • run the Nortwind.DC.Win application.
  • Invoke the Model Editor and navigate to the Views|Xafari.Northwind.DC.BusinessOperations|ChangeFreight_DetailView node. Change any parameters (e.g. Caption) and save the changes. Close the Model Editor.  
  • In the application, go to the Business Operations | Change Freight navigation item, start the BO and analyze the form used to input the BO parameters.