## Version

JReport Enterprise Server provides a versioning system for controlling the resources contained in the resource tree. There are three different version types to select from: report set, catalog and result versions.

To understand what the versioning system is, first you have to understand the resource mechanism in JReport Enterprise Server. A resource in the JReport reporting system is a conceptual node, which holds a group of archive versions that can be processed or organized in JReport Enterprise Server. Information of these versions is stored in the System DB database that JReport Enterprise Server uses, while version files are saved in the directory - `<reporthome>\history`.

There are three main types of resource nodes in the JReport folder-tree structure - catalogs, report sets, and report set results. The three pink nodes are shown in the diagram below:

The System DB database stores archive versions in the three types of resource nodes. Thus, JReport Enterprise Server refers to different node types to import archive versions into the resource tree for being processed or organized by you.

### What is a version

All the resources in the resource tree are controlled by versions. A version is the fundamental unit of the resource tree, and your resources might change over time. JReport Enterprise Server uses a versioning system to create and manage resources that have changed in content and properties owing to updates issued upon them.

All the resources in the resource tree have versions. A large portion of resource management tasks are done by managing resource versions.

### Different version types

The versions in JReport Enterprise Server fall into the following three major categories:

- Report Set Version
  The version of a report set file.
- Catalog Version
  The version of a catalog file.
- Result Version
  The version of a report set result file.

  The report set result can be generated and maintained in two places - the resource tree and the built-in version folder.

  When you schedule a report set to publish to the versioning system, you can choose an archive location to generate the report set result. You can generate the report set result in the built-in version folder, the My Reports folder or the Public Reports folder in the resource tree.

  The report set results generated in the resource tree are standalone results and can have their own versions, while those generated in the built-in version folder can only be bound with their respective report sets.

### Real path of versions

If you check the property of a version, you will find its real path. Remember that version information is stored to a database, and version files are stored in the directory `<reporthome>\history`. For the report set InvoiceReport.cls, the report set version's real path is `<reporthome>\history\1\JReport_System_User894485281\InvoiceReport.cls`, which is the actual report set result path on disk and stored in the server database. That is, when you click the InvoiceReport.cls report set result resource on the server interface, you are accessing it on the disk, only the path to it is stored in the database. And this works the same for both the report set version and the catalog version. When clicking the report set/catalog resource on the server interface, you are accessing a cls/cat file on disk.

### Archive policy

JReport Enterprise Server uses an archive policy to control the resource versions. You can control whether or not to use multiple versions for a specific resource. Also, you can define the maximum number of versions that can be listed in the version table.

The archive policy can be applied to a single resource individually, or to many resources in a folder as a whole.

###### Related topics:

- Managing versions