Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

LiveLink Content server 16.2

Status
Not open for further replies.

Susan2068

Programmer
Jul 22, 2016
16
IN
Hi,

earlier we had live link content server 10.6 which has been integrated to one of our application. we were using the SOAP search web service to fetch the files and folder and list it in screen.

now we have upgraded the content server to 16.2 now the SOAP search web service is returning empty list.

these are the method we are using to get the types and items from live link

SingleSearchResponse results = searchService.search(singleSearchRequest, "");
SResultPage srp = results.getResults();
List<SGraph> sra = results.getResultAnalysis();
List<SGraph> items = srp.getItem();
List<DataBagType> types = srp.getType();

the results objects has the result,
srp and sra objects have the data when we try to get the items and types it is not retrieving the data. it works fine in content server 10.6

please let me know for any changes we have to do to work with content server 16.2

Thank you
 
OT has constantly maintained that using the SOAP search service is in deprecation status but maintained not to break legacy code,,but unless you see any statement form them saying it has been deprecated I would be very surprised.Here are a couple of suggestions I could make.
[ol 1]
[li]You could use SOAPUI and point to the search WSDL and verify you are getting anything back[/li]
[li]You could turn wantsearchlogs=true on a livelink server and submit the search and see if the query provides any response,use the GUI to and search to see what the query is used to get a comparison [/li]
[li]You could turn debug=2,wantlogs=true,wantlapilogs=true on a livelink server and look at the IN/OUT arguments IN is what your program gives OUT is what the LLserver spits out [/li]
[/ol]

I have a link here in case you are new to livelink debugging
If memory serves me right 16 server will give you search results in JSON(proper REST API) or you could always use the old search XML API as well which is more in tune with what the search system is coded to do.

Well, if I called the wrong number, why did you answer the phone?
James Thurber, New Yorker cartoon caption, June 5, 1937
Certified OT Developer,Livelink ECM Champion 2008,Livelink ECM Champion 2010
 
Hi Appnair,

Thank You for your quick response. I will try the options provided by you and get back to you.

Thanks again,
 
Hi Appnair,
<urn1:queries>
<!--Optional:-->
<urn1:DataCollectionSpec>'LES Enterprise'</urn1:DataCollectionSpec>
<urn1:FirstResultToRetrieve>1</urn1:FirstResultToRetrieve>
<urn1:NumResultsToRetrieve>10000</urn1:NumResultsToRetrieve>
<!--Optional:-->
<urn1:QueryLanguage>Livelink Search API V1</urn1:QueryLanguage>
<!--Optional:-->
<urn1:ResultOrderSpec> </urn1:ResultOrderSpec>
<!--Optional:-->
<urn1:ResultSetSpec>where1=("OTSubType":0 OR "OTSubType":1 OR "OTSubType":144) AND "OTParentID":2000 </urn1:ResultSetSpec>
<!--Zero or more repetitions:-->
<urn1:ResultTransformationSpec>OTName</urn1:ResultTransformationSpec>
</urn1:queries>
i tried the above query in SoapUI and i verified it is not returning anything in content server 16.2. it works fine with content server 10.2

could u please check the query and let us know for any changes

Thank You
 
I tried against my 16.2 and it worked.I put 2000 as the Ent Workspace
Code:
<urn1:DataCollectionSpec>'LES Enterprise'</urn1:DataCollectionSpec>
<urn1:FirstResultToRetrieve>1</urn1:FirstResultToRetrieve>
<urn1:NumResultsToRetrieve>10000</urn1:NumResultsToRetrieve>
<!--Optional:-->
<urn1:QueryLanguage>Livelink Search API V1</urn1:QueryLanguage>
<!--Optional:-->
<urn1:ResultOrderSpec> </urn1:ResultOrderSpec>
<!--Optional:-->
<urn1:ResultSetSpec>where1=("OTDataID":2000)</urn1:ResultSetSpec>
<!--Zero or more repetitions:-->
<urn1:ResultTransformationSpec>OTName</urn1:ResultTransformationSpec>
<urn1:ResultTransformationSpec>OTParentID</urn1:ResultTransformationSpec>
<urn1:ResultTransformationSpec>OTSubType</urn1:ResultTransformationSpec>


Code:
<s:Envelope xmlns:s="[URL unfurl="true"]http://schemas.xmlsoap.org/soap/envelope/">[/URL]
   <s:Header>
      <h:OTAuthentication xmlns:h="urn:api.ecm.opentext.com" xmlns="urn:api.ecm.opentext.com" xmlns:xsd="[URL unfurl="true"]http://www.w3.org/2001/XMLSchema"[/URL] xmlns:xsi="[URL unfurl="true"]http://www.w3.org/2001/XMLSchema-instance">[/URL]
         <AuthenticationToken>< REMOVED THE AUTH TOKEN FOR PUBLIC POSTING ></AuthenticationToken>
      </h:OTAuthentication>
   </s:Header>
   <s:Body xmlns:xsi="[URL unfurl="true"]http://www.w3.org/2001/XMLSchema-instance"[/URL] xmlns:xsd="[URL unfurl="true"]http://www.w3.org/2001/XMLSchema">[/URL]
      <SearchResponse xmlns="urn:SearchServices.service.livelink.opentext.com">
         <SearchResult>
            <ResultAnalysis>
               <ID>Map from Region Names to Display Names</ID>
               <N>
                  <ID/>
                  <S>Name</S>
                  <S>Container</S>
                  <S>Content Type</S>
                  <Type>MRD</Type>
               </N>
            </ResultAnalysis>
            <Results>
               <Item>
                  <ID>DataId=2000&amp;Version=0</ID>
                  <N>
                     <I>141</I>
                     <ID>n1</ID>
                     <S>Enterprise</S>
                     <S>-1</S>
                     <Type>t1</Type>
                  </N>
               </Item>
               <ListDescription>
                  <ActualCount>1</ActualCount>
                  <IncludeCount>1</IncludeCount>
                  <ListHead>1</ListHead>
               </ListDescription>
               <Type>
                  <ID>t1</ID>
                  <Ints>OTSubType</Ints>
                  <Strings>OTName</Strings>
                  <Strings>OTParentID</Strings>
               </Type>
            </Results>
            <Type>
               <ID>MRD</ID>
               <Strings>OTName</Strings>
               <Strings>OTParentID</Strings>
               <Strings>OTSubType</Strings>
            </Type>
         </SearchResult>
      </SearchResponse>
   </s:Body>
</s:Envelope>

Well, if I called the wrong number, why did you answer the phone?
James Thurber, New Yorker cartoon caption, June 5, 1937
Certified OT Developer,Livelink ECM Champion 2008,Livelink ECM Champion 2010
 
Hi Appnair,

i removed the OTSubType in the where clause after that i was able to retrieve the results.

<urn1:queries>
<!--Optional:-->
<urn1:DataCollectionSpec>'LES Enterprise'</urn1:DataCollectionSpec>
<urn1:FirstResultToRetrieve>1</urn1:FirstResultToRetrieve>
<urn1:NumResultsToRetrieve>10000</urn1:NumResultsToRetrieve>
<!--Optional:-->
<urn1:QueryLanguage>Livelink Search API V1</urn1:QueryLanguage>
<!--Optional:-->
<urn1:ResultOrderSpec> </urn1:ResultOrderSpec>
<!--Optional:-->
<urn1:ResultSetSpec>where1="OTParentID":2000 </urn1:ResultSetSpec>
<!--Zero or more repetitions:-->
<urn1:ResultTransformationSpec>OTName</urn1:ResultTransformationSpec>
</urn1:queries>

when i add OTSubType it is not reverting the results i checked in the regions the queryable and displayable is checked to OTSubType but still it is not reverting the result

what may be the problem here

Thank You
 
Unfortunately I won't be able to tell you that because the correct way of telling this
<urn1:ResultSetSpec>where1=("OTSubType":0 OR "OTSubType":1 OR "OTSubType":144) AND "OTParentID":2000 </urn1:ResultSetSpec>

I think what you are saying is

Select DataID from SearchIndex where OTSubType in (0,1,144) and OTParenTID=2000 (there are no tables in search it is a proprietary product,I just included it so you can understand the concept)

My understanding is the "IN" clause in search will be like where1,where2,where3 for each of them

As I keep telling you find the search API Bible from OT
When I have to do a search based code I play with that API specifications [highlight #EF2929]NOT the SOAP API syntax.[/highlight]If you are thinking that Search API is difficult to achieve then you are wrong it just
means you are using a custom html to POST/GET to the see this extremely simple example

If one can make the query work in search API chances are you can make it work in SOAP or REST.




Well, if I called the wrong number, why did you answer the phone?
James Thurber, New Yorker cartoon caption, June 5, 1937
Certified OT Developer,Livelink ECM Champion 2008,Livelink ECM Champion 2010
 
Hi Appnair,

in the above search query i found out the problem in our environment in 16.2 content server
if we use the AND condition in the where clause it is not retrieving the data
for example :
where1=("OTSubType":0 OR "OTSubType":1 OR "OTSubType":144) AND "OTParentID":2000

if i use only the where1="OTParentID":2000 it is retrieving the data.

and i tried with where1=("OTSubType":0) it is also retrieving the data.

we have found out that if we add AND condition it is not retrieving the data from livelink

Documents are retrieved successfully with following where conditions
where1="OTParentID":2000
where1="OTName":test.pdf

But Documents are not retrieved for below conditions, which includes AND
where1="OTParentID":2000 AND “OTName”:test.pdf


please help

Thanks in advance
 
Use the search GUI and complete your search using complex queries.If the search gui returns the correct results as you want I think you are saying "find me a document called test.pdf in a folder called 2000" this should very well be possible in the search GUI.If that works put search logging and trap the query and adjust it for your SOAP/REST things.

Well, if I called the wrong number, why did you answer the phone?
James Thurber, New Yorker cartoon caption, June 5, 1937
Certified OT Developer,Livelink ECM Champion 2008,Livelink ECM Champion 2010
 
hi appnair,

i tried the search GUI by using complex queries and i m able to find the results with ("OTSubType":0 OR "OTSubType":1 OR "OTSubType":144) AND "OTParentID":2000 this query.

can u pls help me how to put the search logging in content server. so that i can adjust the query in soap/rest

thanks in advance
 
Try going through this article on general debugging
you will find search debugging in there

I will also ask you to ask the KB search forum as search stalwarts can better help you
or you can even ask through a support ticket if this query was working in some version and
the new one broke it


Well, if I called the wrong number, why did you answer the phone?
James Thurber, New Yorker cartoon caption, June 5, 1937
Certified OT Developer,Livelink ECM Champion 2008,Livelink ECM Champion 2010
 
Hi appnair,

i found the solution for the above problem

There have been some changes in the code regarding the AND operator in 16.2.2(Update 2017-09) which is release noted:

2.4 Changes - 16.2.2 (September 2017)

2.4.3 Search Query Language
The behavior when searching for "any words" or "all words" in advanced search has been changed to ignore Boolean operators (such as "and", "or", "not") and treat them as keywords.
This makes the behavior consistent with other search operators.
Depending on configuration, this may also change the default search bar behavior.

This issue looks like the results of changes that were introduced with CS 16.2.2 (Update 2017-09).

The solution was to add the following to the request:

&lookfor1=complexquery

Thank you
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top