This interface provides the ability to check in versions of versionable objects (initially Document Versions) in DMA.
This method must be supported in every implementation of this interface.
Syntax
DmaRC IdmaVersionable::SetCheckIn (
Dmapv pIVersionSeries,
Dmapv pIVersionDescription)
Parameters
Name | Mode | Description |
pIVersionSeries | input | Pointer to an interface on a VersionSeries object |
pIVersionDescription | input | Pointer to an interface on a new Version Description object which points to this versionable object. |
Records the intention to perform a checkin of the versionable object against a specified version series. In order for this operation to succeed the client must be holding a reservation against the specified version series. In addition, if the Reservation object which records that reservation has a non-null value for the NewVersion property, then the current versionable object (the target of the SetCheckIn method) must be a scratchpad for that (cloned) object. This method call captures references to the version series and version description objects.
When the ExecuteChange operation is invoked following this method call, the following changes are made in the persistent store:
-- The Versionable object is saved (if not already persistent) or updated. The VersionDescriptions property of the Versionable object will be extended to include the newly created version description (see below).
-- The Reservation object resolved by the checkin is deleted.
-- A new Version Description is created in the persistent store reflecting the extended properties of the referenced Version Description scratchpad at the time of ExecuteChange, and with appropriate generated values for the Version Series, Version and IsCurrentVersion properties.
-- If there is a Current Version Description of the specified Version Series, its IsCurrentVersion property is updated to DMA_FALSE.
-- The persistent state of the referenced Version Series is modified such that the Current Version Description property references the newly created Version Description and that the latter appears at the end of the Version Descriptions enum property.
The ExecuteChange operation is not permitted to change the scratchpads of the referenced Version Series or Version Description objects.
If the document space supports threaded versioning, then multiple calls to SetCheckIn may be allowed, even with the same parameters, without an intervening call on ExecuteChange. If the document space does not support threaded versioning, this method fails, if the object has been previously checked in, or if there is already a checkin pending for this object
Return Values
Name | Description |
DMARC_BAD_OBJECT | An inappropriate object was passed as parameter to this function. For example, the object does not support a required interface or is of an inappropriate class. |
DMARC_BAD_PARAMETER | (E_INVALIDARG) Invalid input parameter. |
DMARC_CONFLICTING_OPERATION | The call on this primary intentional method logically conflicts with a prior call on a different primary intentional method. |
DMARC_NO_MEMORY | (E_OUTOFMEMORY) Insufficient memory to complete the operation. |
DMARC_OK | (S_OK) Success. |
Deferred Return Values
Name | Description |
DMARC_ACCESS_DENIED | (E_ACCESSDENIED) The requester has insufficient access rights to perform the requested operation. |
DMARC_MULTIPLE_CHECKIN_NOT_SUPPORTED | The implementation does not support multiple different checkins on the same object (i.e., threaded versioning). |
DMARC_NO_RESERVATION | The Version Series is not holding a reservation at this time. |
DMARC_OBJECT_LOCKED | The lock(s) on the persistent object prohibit the attempted operation. |
DMARC_OBJECT_MODIFIED | The object has been modified since it was retrieved. |