Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    WebV: Call Number redirect does not work

    • Article Type: General
    • Product: Voyager
    • Product Version: 8.2.0

    Symptoms

    • "Could not retrieve search results" when click on Call Number redirect in a record.
    • Other search redirects from record work fine
    • URL created by redirect inserts call number rather than search code in searchCode= parameter

    Defect status

    Issue 16384-21041 is fixed in Voyager 8.2.2 and higher.

    Replication steps

    1. On the server, edit your skin?s files to use a redirect on call number. For example:
      1. ... ui/<skin>/xsl/contentLayout/configs/displayHoldings.xml
    <holdingsTags label="Call Number:" notFound="No call number available">
    <displayTag field="852" indicator1="X" indicator2="X" subfield="khij" redirect="callNumber" redirectOn="hi" />
    </holdingsTags>
    1. ... ui/<skin>/webvoyage.properties
    holdings.redirect.callNumber.search.code=CALL+
    1. Search in WebVoyage using the skin from step 1.
    2. Click on a record in the Titles List.
    3. In the Holdings Information, the Call Number should be a clickable link.
    4. Hover over the link and note the URL your browser previews looks something like this:

    http://<IP>:<port>/vwebv/search?searchArg=QL737.C424%20S65%202007&searchCode=%20QL737.C424%20S65%202007&searchType=1

    Note the space after searchCode= as well as the use of the call number for searchCode= rather than the valid search code specified in your webvoyage.properties file.

    1. Click the link. You are returned to the search page with the message "Could not retrieve search results"

    Workaround

    Edit display.xsl

    1. Find this section:
    <xsl:variable name="cleanedRedirectSearchData">
    <xsl:call-template name="url-encode">
    <xsl:with-param name="str" select="$redirectSearchData"/>
    </xsl:call-template>
    </xsl:variable>
    
    <xsl:variable name="linkData">
    <xsl:if test="string-length($cleanedRedirectSearchData)>0">
    <xsl:value-of select="$searchParameter"/>
    <xsl:value-of select="$searchArgParameter"/>=<xsl:value-of select="normalize-space(substring($cleanedRedirectSearchData,$redirectNonFilingIndicator))"/>
    <xsl:value-of select="$searchCodeParameter"/>=<xsl:value-of select="$cleanedRedirectSearchData"/>
    <xsl:value-of select="$searchTypeParameter"/>=<xsl:value-of select="$redirectSearchType"/>

    Note the incorrect parameter:

    <xsl:value-of select="$searchCodeParameter"/>=<xsl:value-of select="$cleanedRedirectSearchData"/>

     

    1. Change the following parameter:
    <xsl:value-of select="$searchCodeParameter"/>=<xsl:value-of select="$cleanedRedirectSearchData"/>

    to instead be this:

    <xsl:value-of select="$searchCodeParameter"/>=<xsl:value-of select="$redirectSearchCode"/>

     

    1. Save change.

     


    • Article last edited: 08-Oct-2013