# Versioning

**Process Definition Versioning**

Each time a Bpm Process is imported into the Web Application using a XPDL file it will produce a new version of the Process. The matching criteria used is the name of the process so a process's name should be unique.\
&#x20;As it is shown in the image below the Application name and the Process name are used to hold Process versions together.

![](https://3974112602-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LH4gGgyMb1_fhOg782r%2F-LHA9wwdmOA0ZL-6t_mH%2F-LHAA3GHdbwXtGyJsE1_%2Fbpm-process-definition-class.jpg?alt=media\&token=cc21cbc0-aa15-48cf-bdc0-dda41ebdc749)

**Form Versioning**

Which action will force a new version of a Form Definition:

* A change in the Section Structure.
* Rename/Remove/Add a Section.
* Rename/Remove/Add a Grid.
* Rename/Remove/Add a Field.
* A field change it's type (from integer to string for example).\
  &#x20;Any of these change will force the creation of new OrbeonFormDefinition.

If a Field change it's type this will NOT affect any Bpm Process that use that form.\
&#x20;Internally field's indexes in Bpm Processes use the name of the field plus the type (name + type). If a field change it's type a new slot will be created. The same applies to rename/remove/add operations, new slots will be used.
