versioning - Instance versioning
Instance versioning allows creating versions for a single object instance (createInstanceVersion()). The new instance version gets the next higher version number, which can be retrieved by getInstanceVersion(). Older instance versions can be accessed calling setInstanceVersion().
Instance versioning may conflict with database versioning and can be used in databases, only, which do not have got an object space version. In contrast to object space versioning, instance versioning does not provide consistent versioning, i.e. indexes are not maintained for older instance versions.
Instance versioning works recursively for all instances owned by the object instance (references and owning relationships) and being marked for instance versioning. Instance versioning creates also a new version for shared base type instances, when being marked for instance versioning (versioning = true).
When calling the function with an invalid type definition or when the type definition does not refer to a complex data type, the function throws an exception.