Hi all. I'm confused by DFS's structured query. Here's what I'm passsing as a request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sear="http://search.services.fs.documentum.emc.com/" xmlns:quer="http://query.core.datamodel.fs.documentum.emc.com/" xmlns:core="http://core.datamodel.fs.documentum.emc.com/" xmlns:prop="http://properties.core.datamodel.fs.documentum.emc.com/"> <soapenv:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:BinarySecurityToken QualificationValueType="http://schemas.emc.com/documentum#ResourceAccessToken" a:Id="RAD" xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">blah</wsse:BinarySecurityToken> </wsse:Security> </soapenv:Header> <soapenv:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <sear:execute> <query xsi:type="quer:StructuredQuery" isDatabaseSearch="true" objectType="type_name_foo"> <quer:repositories>repository_name_foo</quer:repositories> <quer:rootExpressionSet> <quer:expressions xsi:type="quer:PropertyExpression" isRepeated="false" isCaseSensitive="true" dataType="STRING" property="property_name_foo" condition="EQUAL"> <quer:value xsi:type="quer:SimpleValue" value="property_value_foo"/> </quer:expressions> </quer:rootExpressionSet> </query> <quer:execution startingIndex="0" maxResultCount="4000" maxResultPerSource="4000"/> <core:options> <core:Profiles isProcessIncludedUnknown="false" xsi:type="prof:PropertyProfile" xmlns:prof="http://profiles.core.datamodel.fs.documentum.emc.com/"> <prof:IncludeProperties>title</prof:IncludeProperties> <prof:IncludeProperties>object_name</prof:IncludeProperties> <prof:IncludeProperties>r_object_type</prof:IncludeProperties> <prof:IncludeProperties>r_lock_owner</prof:IncludeProperties> <prof:IncludeProperties>r_lock_date</prof:IncludeProperties> <prof:IncludeProperties>a_category</prof:IncludeProperties> <prof:IncludeProperties>r_full_content_size</prof:IncludeProperties> </core:Profiles> </core:options> </sear:execute> </soapenv:Body></soapenv:Envelope>
There is one document that matches property_name_foo = 'property_value_foo' with object type type_name_foo, and I use the same credentials to check the query result as I use in the web service call. Here is the response I get:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns5:executeResponse xmlns:ns2="http://query.core.datamodel.fs.documentum.emc.com/" xmlns:ns3="http://properties.core.datamodel.fs.documentum.emc.com/" xmlns:ns4="http://core.datamodel.fs.documentum.emc.com/" xmlns:ns5="http://search.services.fs.documentum.emc.com/" xmlns:ns6="http://content.core.datamodel.fs.documentum.emc.com/" xmlns:ns7="http://profiles.core.datamodel.fs.documentum.emc.com/" xmlns:ns8="http://rt.fs.documentum.emc.com/"> <return queryId="queryId-453404524179749"> <ns2:dataPackage/> <ns2:queryStatus globalResultsCount="1" isCompleted="true" hasMoreResults="false"> <ns2:RepositoryStatusInfos isFacetResultsTruncated="false" isFacetRetrieved="false" hasMoreResults="false" resultsCount="1" hitCount="-1" status="SUCCESS" name="repository_name_foo"> <ns2:RepositoryEvents message="Start processing" eventSubId="DEFAULT" eventId="INTERNAL" time="2012-06-04T12:01:31.160-04:00" source="repository_name_foo"/> <ns2:RepositoryEvents message="SELECT * FROM type_name_foo WHERE (property_name_foo = 'property_value_foo') AND (a_is_hidden = FALSE) ENABLE(NOFTDQL)" eventSubId="NATIVEQUERY" eventId="INTERNAL" time="2012-06-04T12:01:33.161-04:00" source="repository_name_foo"/> <ns2:RepositoryEvents message="" eventSubId="DEFAULT" eventId="FETCH" time="2012-06-04T12:01:33.161-04:00" source="repository_name_foo"/> <ns2:RepositoryEvents message="1" eventSubId="DEFAULT" eventId="FOUND" time="2012-06-04T12:01:33.489-04:00" source="repository_name_foo"/> <ns2:RepositoryEvents message="" eventSubId="COMPLETE" eventId="DONE" time="2012-06-04T12:01:33.536-04:00" source="repository_name_foo"/> </ns2:RepositoryStatusInfos> </ns2:queryStatus> </return> </ns5:executeResponse> </S:Body></S:Envelope>
It's very confusing to me that I get a "globalResultsCount" of "1", but there are no results in the dataPackage element.