Object Status
The Object Status reflects its current readiness for the usage. The following statuses are available:
- Draft – the object is being edited.
- Published – the object has been edited, it can be used.
- Archive – the object is obsolete.
When objects with status are displayed, the List View shows the following Actions:
- Show draft – activate/deactivate the display of draft objects.
- Show archive – activate/deactivate the display of obsolete objects.
- Status – choose another status.
Detail View also contains Actions that allow to change the Status.
Object Status is used for active locks. It is implemented for XPO and DC objects.

For more information about the Object Status, please refer to the .
Bulk Edit
Xafari platform provides the feature allowing to edit groups of objects in the List View. Such functionality is required when a property should have the same value in a number of objects. The user can select the objects and edit the property once for the entire group. A special editor, which is displayed in a Dock Panel, is used to edit the common values.

For more information about the Bulk Edit, please refer to the .
Business Numerators
When a new persistent object is created, the Numerator service allows to automatically set its properties by sequential numbering. Numerators provide the following main features:
- The developer can set start value and step for the numerator index.
- Ability to create templates which get their values by the numerator depending on the index.
- Through Numeration. It can be used for sequential numeration of objects of different types. For example, one sequence of numbers can be used for all outgoing documents, such as waybills, pay sheets, etc.
- Possibility to reuse the numbers of deleted objects. It means that all numbers of the numerator will be used. If an object is deleted, its number does not disappear. It is used again in the next call of the numerator service.
- Support batch processing of documents.
Numerators are implemented for XPO and DC objects.

For more information about the Business Numerators, please refer to the .
Extra Categories
Categories allow to classify the data in the list. It filters the data based on the selected referenced object. Categories are implemented as Dock Panels displaying the list of referenced objects.
Categories can be activated and customized both in Application Model and the code.
Categories are implemented for all platforms: Win, Web, Mvc.

For more information about the Extra Categories, please refer to the .
Managed Operations
The Managed Operations module allows the end user to fully control the starting and running of any method in the XAF application. 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 several parallel processes. The launch of the managed operation is logged; the information can be stored in a database.
The Managed Operations service offers various ways to implement the execution of the application method in depend on the end customer needs. The key features of the service are listed below:
- Synchronous and asynchronous Managed Operations
- Three ways to display synchronous Managed Operation: progress in percentage, infinite loop, stages.
- Global and local Managed Operations
- Subprocesses
- Unique Managed Operations
- Logging
- Special Dock Panel to administrate and monitor
Managed Operations are implemented for all platforms: Win, Web, Mvc.

For more information about the Managed Operations, please refer to the .
Dynamic Properties
Dynamic Properties are additional properties of the business object, it is intended for storing and processing additional data are not provided by the standard application configurations. Xafari provides base clases to implement Dynamic Properties.
It should be noted that XAF supports a similar component called Custom Property. But there is a significant difference: the Dynamic Properties exist only for the object instance. Therefore, two objects of the same type may have different Dynamic Properties.
To display Dynamic Properties, it is recommended to use special editors, such as VerticalGridPropertyEditor and others.
Dynamic Properties is implemented for XPO and DC objects.
Application Settings
Application Settings implement a lot of uses as a tool for centralized management of complex enterprise application. Technically, it is a set of global stored variables. Application Settings Module provides the infrastructure needed to support all settings with different types (including persistent) implemented in various modules.
Application Settings Module provides the following main features:
- The developer can implement separate Settings or Settings groups in a hierarchical structure.
- An approach similar to the extension of the Application Model when implementing Settings structure.
- Each module can contain its own Settings. After adding the module to the application, these Settings are integrated into the overall Settings system.
- The possibility to define several layers of Setting values. The values of the subsequent layer override the previous layer. The same principle works in the layers of Application Model.
- A separate layer of system Settings.
- The possibility to define user Settings layer.
- Access to Settings regulated Security System.
- The client can convert Settings when updating the versions of the application.
- A special API to process Settings in the code.
Application Settings are implemented for all platforms: Win, Web, Mvc.
For more information about the Application Settings, please refer to the .
Data Versioning
Enterprise application data undergoes substantial changes as time passes. After the object is created, it can be changed many times or even deleted later. Meanwhile, the object can be a member of various business processes, the object's data can be used for creating reports, or it can be analyzed in other components. In connection with these processes, it can be important to have a method for observing the state of the analyzed object anytime. The data version control module (also called Versioning) is intended exactly for this purpose.
Data Versioning means the ability to associate the current business object state with the point in time, and the ability to access the object state (i.e. version) for the specified point in time.
Version control systems, such as SVN, TFS, and others face similar tasks.
The support of business objects versioning is based on the following concepts:
- The support of versions is only available for the business objects implemented using the Domain Components.
- The Domain Component of the business object is used for storing versions of the business object.
- VersionId property exposes for business objects with the version control. The property stores the same value for all versions of a business object.
- Compulsory usage of calculated properties and VersionId property to refer to business objects with version control.
The next operations with object versions are available:
- Save the newest version of the object (Save as new version).
- Get the last version of the business object (Get Latest Version).
- Get the specific version of the business object for the specified date and time.
- View the object change history (Show history).
- Set the current date for operations with versions.

For more information about the Data Versioning, please refer to the .
Work Places
Work Place is a flexible and effective option for configuring the UI of the application according to individual user demands and requirements. One user may have several Work Places.
The method of configuring user's Work Places is based on the idea of using additional layers of Application Model. Additional intermediate layer allowing to configurate Work Places is introduced in Application Model.
Each user of the system can have the access to multiple Work Place configurations. In their turn, all changes made by users are stored separately in the Model for each user and particular Work Place.
To associate the user with an appropriate Work Place, an additional role in the security system should be created by the developer. This fictitious role is intended to access the Work Place without any extra permissions. The name of the Work Place must comply with the name of the created role. Work Places are stored in the .xafml file. If the file name comply with the Role name, then the user gets access to the Work Place.
There is a special tool Xafari.Workplace.ModelEditor.exe to create and edit Work Places.

For more information about the Work Places, please refer to the Work Places post.
Data Management (Import/Export)
Xafari Data Module provides import and export data in arbitrary XAF-application. It is required for solving the following:
- enter the original data to the database
- mutual integration with other applications
- application updating to newer versions
Such problems always arise in the deployment and exploitation of custom enterprise applications. To deal with such problems, Xafari offers a standard declarative approach successfully tested in practice.
Xafari Data includes several types of data sources (Access, XML, CSV, Excel, Galaktika ERP, and so on). The principle of extensibility allows to implement individual data sources.
