There are two checkin/checkout mode: automatic and manual. In both mode, whenever a user logs out or the user's session times out, all session related checkouts will be checked in. Unless the RPMObject has been checked out manually with the isTimeless parameter set to true.
Automatic checkout is the default mode. With the automatic mode, when modifying an RPMObject, all required checkouts will be executed prior to the execution of the modification, and all checked out objects will be checked in once the operation is completed.
When switching to the manual mode the user is required to execute the right checkouts before updating any RPMObjects. To determine which object needs to be checked out you can rely on the checkout mode type documentation in each RPMObjects. The RPMObjects for which the checkout mode type was omitted don't require to to be checked out. Whenever an object is saved for the first time, it is automatically checked in.
There are three checkout mode type:
To switch, back and forth, from automatic to manual mode use the following calls, note also then when logging back in the application the checkout mode is resetted to Automatic:
C# and Java
disableAutomaticCheckoutMode(sessionID); enableAutomaticCheckoutMode(sessionID);
Note that the RPM Web Service API is not allowed to checkin an RPMObject that was checked out from the RPM Standalone Client application. To do so, the forceCheckinOnRPMObjectCheckOut method must be called.
To force a checkin on any checkouts based on:
C# and Java
forceCheckinOnSessionsCheckOut(sessionID, targetSessionID); forceCheckinOnUsersCheckOut(sessionID, user); forceCheckinOnRPMObjectCheckOut(sessionID, rpmObject)
To determine if an RPMObject is checked out, which user owns the checkout and since when, use the following call:
C# and Java
isCheckedOut(sessionID, rpmObject)
In manual checkout mode only, use the following calls to checkout/checkin an RPMObject. The isTimeless parameter in the checkOut method indicates whether a checkout on an RPMObject remains beyond the web service session or not. If set to false, when a user logs out or when a web service session times out, all manually checked out object will be automatically checked in.
C# and Java
checkOut(sessionID, rpmObject, boolean); checkIn(sessionID, rpmObject);