3.1.4.1 GetFinalRoutingDestinationFolderUrl

This method<9> is called to determine the storage location for the submission based on the rules in the repository and a suggested save location chosen by a user.

The following is the WSDL port type specification of the GetFinalRoutingDestinationFolderUrl WSDL operation.

 <wsdl:operation name="GetFinalRoutingDestinationFolderUrl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
   <wsdl:input message="tns:GetFinalRoutingDestinationFolderUrlSoapIn"/>
   <wsdl:output message="tns:GetFinalRoutingDestinationFolderUrlSoapOut"/>
 </wsdl:operation>

The protocol client sends a GetFinalRoutingDestinationFolderUrlSoapIn request WSDL message, and the protocol server MUST respond with a GetFinalRoutingDestinationFolderUrlSoapOut response WSDL message, as follows:

  1. If the repository is not configured for routing content then the protocol server MUST set the ResultType element to "DocumentRoutingDisabled" and return.

  2. If the originalSaveLocation is a storage location for a document set, then the protocol server MUST set the ResultType element to "OriginalSaveLocationIsDocumentSet" and return.

  3. If the originalSaveLocation is a storage location for which routing is not enforced, then the protocol server MUST set the ResultType element to "NoEnforcementAtOriginalSaveLocation" and return.

  4. If the contentTypeName is NULL or empty then the protocol server MUST set the ResultType element to "MissingRequiredProperties" and return.

  5. Next the protocol server processes the rules in an implementation-specific manner based on the submission’s properties, contentTypeName, and originalSaveLocation to determine the storage location for the submission.

  6. If no applicable rule is found then the protocol server MUST set the ResultType element to "SuccessToDropOffLibrary" and set the Url to the temporary storage location and return.

  7. If the protocol server determines that the storage location determined by the rules has required properties that are not present in the properties element, the protocol server MUST set the ResultType element to "SuccessToDropOffLibrary", set the Url to the temporary storage location and return.

  8. If the user does not have permissions to store content in the storage location determined by the rules, then the protocol server MUST set ResultType to "PermissionDeniedAtDestination" and Url to the temporary storage location and return.

  9. If other implementation-specific errors occur while determining the storage location for the submission, the protocol server MUST set the ResultType element to "UnknownFailure" and return.

  10. Otherwise, the protocol server sets Url to the storage location determined by the rules, which MUST be non-empty.

  11. If parsing of file metadata is disabled on the repository, the protocol server MUST set the ResultType to "ParsingDisabledAtDestination". Otherwise the protocol server MUST set the ResultType to "Success".

  12. If the ResultType is set to "Success", "SuccessToDropOffLibrary" or "PermissionDeniedAtDestination": When a file with the same name does not already exist at the location determined by the rule, then the protocol server MUST set CollisionSetting to "NoCollision" and return; when a file with the same name does exist, if the repository is configured to overwrite existing files and versioning is enabled at the location determined by the rule, then the protocol server MUST set CollisionSetting to "UseSharePointVersioning" and return, otherwise the protocol server MUST set CollisionSetting to "AppendUniqueSuffixes".