About Major and Minor Revisions

Business objects have two levels of revisioning: minor and major.

Minor revisions are individual business objects. The Revise Minor command creates a minor revision family as a linear, ordered sequence of objects with a minor revision string that is incremented for each new minor revision.

Major revisions are equivalent to complete minor revisions. The Revise Major command begins a new major revision (minor revision family) by creating the first minor revision in the new family. An incremented major revision string is generated for each new major revision. You can create as many new major revisions as you want by invoking Revise Major multiple times

For more information, see Creating Major and Minor Revisions.

A UUID called "majorid" is assigned to all objects in a major revision (all objects in the same minor revision family). The collection of all objects created from an original object using the Revise Major/Minor commands comprises a larger family called a Version Family. A new UUID called VersionId is assigned to all objects in the version family.

In this graphic, all objects are in the same version family and have the same versionid. The objects within orange dashes are minor revisions within a major revision: they share the same majorid value. That is, the new revision was created using revise businessobject OBJECTID minor;. When creating a minor revision, you can only create it from the most recent revision in that major revision change. For example, after XMajor2/MinorB is created, you cannot create another minor revision from XMajor2/MinorA because it is no longer the most recent revision.

For a major revision, such as shown for XMajor1/MinorB to XMajor2MinorA or XMajor2/Minor B to XMajor3/MinorA, a new majorid is used, but the same versionid. The command to create the major revision would be revise businessobject OBJECTID major;.

If you copy an object instead of revising it, you create a new version family. The new version family has a new versionid, majorid, and minorid.

Validation of MajorID and VersionID During Object Creation

Error checking of majorid and versionid is performed when a business object is added. More specifically, when performing create/clone business object operations (for example, with the Add Businessobject command), if the specified majorid or versionid is already associated with other objects in the database, an error is generated. This applies only to Add, not Copy or Revise.

add businessobject TYPE NAME REVISION policy POLICY_NAME [ITEM
{ITEM}];
…
<< std::endl << " where ITEM is:"
<< std::endl << " | description VALUE |"
…
<< std::endl << " | physicalid UUID |"
<< std::endl << " | logicalid UUID |"
<< std::endl << " | versionid UUID majorid UUID |"
<< std::endl << " | majororder VALUE |"
<< std::endl << " | minororder VALUE |"
…