3.1.4.5.5 Convert to Schema Lock

If the ExclusiveLockRequestType attribute is set to "ConvertToSchema", the protocol server considers this exclusive lock subrequest to be of type "Convert to schema lock". The protocol server process the request by converting an exclusive lock on the file to a shared lock. The "Convert to schema lock" type of exclusive lock subrequest is a subset of the "Convert to schema lock with coauthoring transition tracked" type of exclusive lock subrequest. The "Convert to schema lock with coauthoring transition tracked" type of subrequest converts the exclusive lock on the file to a shared lock and keeps track of all the clients' user information for those that are editing the file concurrently. The "Convert to schema lock" type of subrequest converts the exclusive lock on the file to a shared lock and does not keep track of the coauthoring transition. The "Convert to schema lock" type and "Convert to schema lock with coauthoring transition tracked" types of subrequests both add the client identifiers to the file coauthoring tracker.

The protocol server uses the ClientID attribute sent in an exclusive lock subrequest of type "Convert to schema lock" to uniquely identify each client and keep track of each client’s timeout on the shared lock for the file. The ClientID attribute is defined in section 2.3.1.9.

The protocol server returns error codes according to the following rules:

  • If the feature of transitioning a file that currently has an exclusive lock to one that has a shared lock is not supported by the protocol server, the protocol server returns an error code value set to "RequestNotSupported".

  • If the feature of coauthoring is not completely supported by the protocol server, the protocol server returns an error code value set to "LockNotConvertedAsCoauthDisabled".

  • If the protocol server is unable to convert the exclusive lock to a shared lock on the file because the file is checked out by the current user, the protocol server returns an error code value set to "ConvertToSchemaFailedFileCheckedOutByCurrentUser".

  • If the protocol server is unable to convert the lock because either there is an exclusive lock with a different exclusive lock identifier or there is a shared lock already present on the file, the protocol server returns an error code value set to "FileAlreadyLockedOnServer".

  • If the protocol server is unable to convert the lock on the file because no lock exists on the server, the protocol server returns an error code value set to "FileNotLockedOnServer".

  • If the protocol server is unable to convert the lock because the document is saved to a document library that requires checking out files and the document is not checked out on the server, the protocol server returns an error code value set to "DocumentCheckoutRequired". The "DocumentCheckoutRequired" error code value indicates to the protocol client that a checkout needs to be done before the exclusive lock is converted to a shared lock. The checkout of the file is done by the client using the CheckoutFile web service call as specified in [MS-LISTSWS].

  • If the protocol server encounters unknown exceptions or failures when converting the lock on the file, the protocol server returns an error code value set to "LockRequestFail".

If any failure occurs such that the subrequest cannot be processed successfully, the protocol server returns an error. The error that the protocol server returns is implementation-specific. Errors that are directly returned by the protocol server are implementation-specific. GenericErrorCodeTypes is defined in section 2.2.5.6. DependencyCheckRelatedErrorCodeTypes is defined in section 2.2.5.2. LockAndCoauthRelatedErrorCodeTypes is defined in section 2.2.5.8.