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

    Adding a General Electronic Service



    Return to menu

    To configure general electronic services, you must have one of the following roles:

    • General System Administrator

    • Fulfillment Administrator

    This section applies only to Primo. For information on how to configure general electronic services in Primo VE, see Configuring General Electronic Services for Primo VE

    In addition to services found in your own collection (such as full text, requests, and so forth), Alma enables you to define general HTTP services (such as searches in ProQuest dissertations and, Ask a Librarian, and so forth) to present to patrons in Primo. To have these services appear in Leganto, see Enabling General Electronic Services in Leganto.


    Electronic Service Example (Primo View It)

    In order to create a general electronic service, you must be familiar with the syntax of the service’s URL, which includes any parameters that are required to query or access specific information from the service. The service’s URL along with OpenURL context object attributes returned from Alma’s link resolver are used to define the URL template, which Alma uses to create the service link that appears in View It and/or Get It.

    In addition, you can configure the following display settings for general electronic services:

    You can also share your general electronic services in the Community Zone, and use general electronic services defined by other institutions. See Sharing General Electronic Services in the Community Zone

    To configure general electronic services:
    1. Open the General Electronic Services Configuration page (Configuration Menu > Fulfillment > Discovery Interface Display Logic > General Electronic Services). In addition to the columns that are visible on the General Electronic Services list, the Item Level column may be added to the view in the view configuration.


      General Electronic Services List
    2. Select Add Service. The Add Service dialog box opens.


      Add Service Dialog Box
    3. Enter the following service information:

      • Service Code – The internal code for the service.

      • Service Name – The internal name used for the service.

      • Service Description – The description of the service.

      • Public Name – The label for the link that displays in View It and/or Get It.

      • Public Note – The note or description of the service that displays below the link in View It and/or Get It.

      • Display Location – Specify the areas within a record's full display that you want to display the GES link. The following options are valid in Primo: None, Getit, Viewit, and Getit & Viewit.

        The display of general electronic services is based on the service's availability rules that are defined with the Service Availability Rules tab, which appears while editing a general electronic service. For more details, see step 5. See Configuring Display Logic Rules if you want to hide the general electronic service based on additional criteria (such as the existence of another type of service or the type of user).
      • URL Template – The URL where the patron is redirected when the external service link is selected. The external service link is comprised of the base URL of the service, and any parameters that are required to query or access specific information from the service. It is formatted according to the syntax of the URL of the service. For more information, see  URL Template.

      • Item Level - This option displays only when Display Location is set Getit. Select Yes to show the link next to each item that matches the input rules. Select No to show the link at the holding level.

        To prevent potential performance issues, Item-level General Electronic Services cannot be used for the If Exists portion of Display Logic Rules.

        For more information, see Item Level General Electronic Service.

    1. Select Add and Close. The new service appears on the General Electronic Service page with the following row actions: Remove and Edit.

    2. Edit the new row to configure additional service details.

      The Service Details page appears.


      Service Details Page (Service Details Tab)
    3. To display this service to signed-in users only, select No in the Enable without login field.

    4. To hide this service based on the availability of the physical resource in the institutional repository, select one of the following options for Disable Service:

      When a guest user or a user without a configured campus performs any of the campus-level disabling activities, Alma disables/hides the service based on a self-ownership check done at the institution level.

      • Never – The service is never disabled.

      • When resource is owned by the campus – The service is disabled when physical items for the resource are owned by the campus.

      • When resource is owned by the campus and available – The service is disabled when physical items for the resource are owned by the campus and are available (that is, they are not involved in a process).

      • When resource is owned by the institution – The service is disabled when there are physical items for the resource that are owned by the institution.

      • When resource is owned by the institution and available – The service is disabled when there are physical items for the resource that are owned by the institution, are in place, and are in an open location. Note that if a physical location is set to Unavailable (see Adding a Physical Location) and this option is selected, the service is enabled. You may want to use this option when items in a certain location (such as a reading room) cannot be requested. Setting this location to Unavailable will enable the display of the service.

    5. Select the Service Availability Rules tab.

      The Service Availability Rules tab displays the rules that the system uses to determine whether a service should be hidden from the user. Each service has a default rule that is applied when none of the other rules apply. The Default general electronic service rule hides the service by default (IsDisplay=False). You can edit the default rule and add rules as needed.


      Service Availability Rules Tab
    6. Add rules regarding the OpenURL context object attributes (which may be returned by Alma’s link resolver during the user’s search) to ensure that Alma has the necessary information to display the service.

      • The available attributes are standard OpenURL attributes. For more information, see Commonly Used OpenURL Attributes for the URL Template.

      • The following item level attributes may be used when item level services are configured:

        • material_type

        • item_policy - values are populated from the institution's Item Policy table. See Configuring Item Policies.

        • process_type

        • base_status - values are Item not in place and Item in place.

      • Adding parameters within a rule will cause the parameters to have an AND relationship with each other, meaning that all values must be true before the rule is considered true. For OR conditions, where only one of values must be true, parameters should be entered separately in a new rule.

      • If multiple rules evaluate to true, the output parameter will be applied based on the first rule that is true.

      1. To add a new rule, select Add Rule. The Edit Rule page opens.


        Edit Rule Page
      2. In the Edit Rule section, enter the rule name (required) and description (optional).

      3. In the Input Parameters section, select Add Parameter. The Add Parameter dialog box opens.


        Edit Rule Page
      4. Enter the following fields:

        • Name – The name of the attribute in the OpenURL context object. For more information about these attributes, see Commonly Used OpenURL Attributes for the URL Template.

        • Operator – The comparison operator to use with this context object attribute.

        • Value – An accepted value for this parameter. To match multiple values, create a separate rule for each value. Note that not all operators require a value.

      5. Select Add Parameter. The parameter is added to the input parameter list.

      6. In the Output Parameters section, set IsDisplay to true.

      7. Select Save. The Service Availability Rules page displays the new rule.

    7. Select Save. The General Electronic Services page displays the new service.

    In a collaborative network, you can create general electronic services in the Network Zone and then distribute them to member institutions. The member institutions have view permission to the distributed records but are not able to edit or delete them. When the Network Zone general electronic service has been distributed, the local list will show either the distributed records only or both the distributed records and the previous local general electronic service records, depending on the configuration in the customer parameter, network_ges_distribution_members_behavior.

    General Electronic Services New UI.png

    General Electronic Services List for a Member Institution

    For more information, see Configuring Fulfillment Information in the Network Zone.

    URL Template

    The URL substitutes OpenURL fields that are enclosed in brackets ( "{" and "}") with the relevant values. For example, the referring URL’s ISBN is substituted into a URL containing: ...&isbn={rft.isbn}&...

    For example, the URL for an Amazon search for a specific ISBN:{rft.isbn}

    When connecting to a resource sharing broker, ensure that this field contains an attribute corresponding to the broker in use. For example, when using the OCLC broker:{rft.oclcnum}

    ILLiad - Books/Book Items (based on your institution’s base URL). For example:{rft.genre}&rft.title={rft.btitle}&rft.stitle={rft.stitle}&rft.atitle={rft.atitle}&{rft.pubdate}&rft.month={rft.month}&rft.volume={rft.volume}&rft.issue={rft.issue}&rft.number={rft.number}&rft.epage={rft.epage}&rft.spage={rft.spage}&rft.edition={rft.edition}&rft.isbn={rft.isbn}&rft.eisbn={rft.eisbn}&{rft.aulast},{rft.aufirst}&rft.auinit={rft.auinit}&{}&rft.publisher={rft.publisher}&{}&rft.doi={rft.doi}&rfe_dat={rft.oclcnum}&rfr_id={rfr_id}

    ILLiad - Articles/Journals (based on your institution’s base URL). For example:{rft.genre}&rft.title={rft.title}&rft.stitle={rft.stitle}&rft.atitle={rft.atitle}&rft.jtitle={rft.jtitle}&{}&{rft.year}&rft.month={rft.month}&rft.volume={rft.volume}&rft.issue={rft.issue}&rft.number={rft.number}&rft.spage={rft.spage}&rft.epage={rft.epage}&rft.edition={rft.edition}&rft.issn={rft.issn}&rft.eissn={rft.eissn}&rft.aulast={rft.aulast}&rft.aufirst={rft.aufirst}&rft.auinit={rft.auinit}&{}&rft.pubdate={rft.pubdate}&rft.pubyear={rft.pubyear}&rft.publisher={rft.publisher}&{}&rft.doi={rft.doi}&rfe_dat={rft.oclcnum}&rfr_id={rfr_id}

    ProQuest - Dissertation Service. For example:{rft.btitle}&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adissertation&url_ver=Z39.88-2004&genre=dissertation

    The following values can be specified in the URL Template parameter between the curly brackets used for normalizing the ISBN, ISSN, eISBN, or eISSN:

    • rft.normalized_isbn

      This normalization removes the text after digits and the hyphen (-) and converts ISBN 10 to ISBN 13

    • rft.normalized_issn

      This normalization removes the text after digits and changes text to lower case.

    • rft.normalized_Eisbn

      This normalization removes the text after digits and the hyphen (-) and converts ISBN 10 to ISBN 13.

    • rft.normalized_Eissn

      This normalization removes the text after digits and changes text to lower case.

    For more information regarding OpenURL, refer to the following:

    Commonly Used OpenURL Attributes for the URL Template

    The OpenURL attributes returned from Alma’s link resolver are grouped by the following general categories:

    OpenURL Attribute Categories
    Category Prefix Description
    Requester req. Information about the requesting entity, that is, the patron. Not used when creating service availability rules for general electronic services.
    ReferringEntity rfe. Information about the referring entity, i.e. Primo. Not used when creating service availability rules for general electronic services.
    Referent rft. Information about the requested item.
    ServiceType svc. Whether a particular format of the Referent is available: "yes" or "no". For example, whether the requested target is available as an abstract or as full text. Multiple service types may be available.
    Other various Other returned values are unused, unless noted below.
    The following are commonly returned attributes that can be used to create service availability rules:
    Commonly Returned OpenURL Attributes from Alma’s Link Resolver
    Attribute PNX Mapping MARC 21 Fields Description
    req_id     The PDS handle (see Identify Patrons to Provide Relevant Services)
    rft.advisor     Advisor, for a dissertation
    rft.applcc     Application country code in ISO two-character format, for a patent. The country in which the patent application was main.
    rft.appldate     Date of application, for a patent
    rft.applyear     Year of application, for a patent
    rft.artnum addata/artnum   Article number. Assigned by the publisher. A URL may be the only usable ID for an online article.
    rft.assignee     Assignee, for a patent: "Smith, John J.", "IBM"
    rft.atitle addata/atitle   Article or chapter title addata/au 100 or 110 or 111 One author's full name: "Smith, Fred James Jr."
    rft.aucorp addata/aucorp   Organization or corporation that created document: "Mellon Foundation"
    rft.aufirst     First author's given name: "Fred James" May have spaces and punctuation.
    rft.auinit addata/auinit   First author's first and middle initials
    rft.auinit1 addata/auinit1   First author's first initial
    rft.auinitm addata/auinitm   First author's middle initial
    rft.aulast addata/aulast   First author's last name: "Smith" May have spaces and punctuation.
    rft.ausuffix addata/ausuffix   First author's name suffix: "Jr." etc.
    rft.bici addata/bici   Book Item and Component Identifier (BICI code)
    rft.btitle addata/btitle For the LDR positions, see Fields that Identify the Bibliographic Material Type. Book title, if the LDR material_type = BK. See rft.jtitle.     Publication country code, in ISO two-character format: "US". See co.
    rft.chron     Enumeration or chronology not in standard format: "1st quarter". Where possible, use date. See ssn and quarter.     Publication country: "United States". See cc.
    rft.coden addata/coden   CODEN (alphanumeric code) addata/date   Publication date. For a patent, this is the date that the patent was issued. Format is YYYY, YYYY-MM, or YYYY-MM-DD.     Publication day
    rft.dcContributor     Dublin Core contributor: person, organization, or service
    rft.dcCreator     Dublin Core creator: person, organization, or service
    rft.dcDescription     Dublin Core description: abstract, table of contents, graphical representation, or free text
    rft.dcFormat     Dublin Core format: File format, physical medium, or dimensions, such as MIME type
    rft.dcIdentifier     Dublin Core identifier: Unambiguous resource identifier
    rft.dcLanguage     Dublin Core language: Resource language
    rft.dcPublisher     Dublin Core publisher: person, organization, or service
    rft.dcRelation     Dublin Core relation: A related resource
    rft.dcRights     Dublin Core rights: Rights information
    rft.dcSource     Dublin Core source: A related resource from which this resource was taken
    rft.dcSubject     Dublin Core subject: keywords and classification codes
    rft.dcTitle     Dublin Core title: Resource title
    rft.dcType     Dublin Core type: nature and genre, such as described by DCMITYPE. For format, see dcFormat.     Degree issued, for a dissertation
    rft.doi addata/doi   DOI (digital object identifier) field
    rft.edition display/edition 250 a Book edition, typically a phrase, with or without numbers: "First edition", "4th ed.".
    rft.eisbn addata/eisbn 020 a if there is no 020 e and the record is not physical; otherwise 020 e International Standard Book Number for electronic version. May be multiple ISBN, separated by commas. May contain a hyphen. May or may not be distinct from rft.isbn.
    rft.eissn addata/eissn 022 a if there is no 022 e and the record is not physical; otherwise 022 e International Standard Serial Number for electronic version. May be multiple ISSN, separated by commas. May contain a hyphen. May or may not be distinct from rft.issn.
    rft.epage addata/epage   End page of article/chapter within volume/issue.
    rft.format addata/format   MIME type of the format
    rft.genre addata/genre   One of:
    • article: document published in a journal
    • book: complete in a single part, often identified by an ISBN
    • bookitem: section of a book, usually with a title or number
    • conference: record of a conference (one or more conference papers)
    • issue: single issue
    • preprint: paper or report published in print or electronically prior to publication in journal or serial
    • proceeding: conference presentation published in a journal or serial publication
    • report: report or technical report published by an organization, agency, or governmental body
    • unknown
    rft.inst     Issuing institution, for a dissertation
    rft.inventor     Inventor’s full name: "Smith, John J.". For a patent.
    rft.invfirst     Inventor’s given names: "John J.". For a patent.
    rft.invlast     Inventor’s last name: "Smith". For a patent.
    rft.isbn addata/isbn 020 a if there is an 020 e; otherwise 776 z if the record is not physical or 020 a if there is no 020 e and the record is physical International Standard Book Number. Nine digits plus a check digit. May contain hyphens.
    rft.issn addata/issn 022 a if there is no 022 e and the record is phpysical; otherwise 022 a if there is an 022 e or 776 x if the record is not physical International Standard Serial Number. May contain a hyphen. ISSN for a book may be associated with the series.
    rft.issue addata/issue   Journal issue: "Spring 1998". Typically numeric.
    rft.jtitle addata/jtitle For the LDR positions, see Fields that Identify the Bibliographic Material Type. Full journal title, if the LDR material_type = CR. See rft.btitle. For example, "Journal of the American Medical Association". For short title, use stitle.
    rft.kind     Patent kind code, for a patent: "AU A1". Kind codes are meaningful within the country of origin.
    rft.month     Publication month
    rft.number     Application number, for a patent
    rft.object_type   For the LDR positions, see Fields that Identify the Bibliographic Material Type. The LDR material_type. The default is BOOK.
    rft.oclcnum addata/oclcid 035 a,z OCLC control number or journal level OCLC number. May be multiple OCLC control numbers, separated by commas.
    rft.pages addata/pages   Start and end pages of article/chapter within volume/issue: "53-58". Can also contain pages not in sequence, e.g. "12-6,64-67". See spage and epage.
    rft.part addata/part   Either a subdivision of, or in place of, volume. Examples: "B", "Supplement". addata/cop 260 a or 264 a Publication place: "New York".
    rft.prioritydate     Priority date, for a patent addata/pub 502 a,c or 260 b or 264 b Publisher name: "Harper and Row".
    rft.pubdate   260 c or 260 g or 264 c or 362 a or 008(date1) Publication date, for a patent
    rft.publisher   502 a,c or 260 b or 264 b Publisher name
    rft.pubyear     Year of publication
    rft.quarter addata/quarter   Chronology: "1", "2", "3", or "4". For non-standard chronology, use chron.
    rft.series addata/seriestitle   Title of the series that contains this book. There may also be an ISSN associated with the series.
    rft.sici addata/sici   Serial Item and Contribution Identifier (SICI code)
    rft.spage addata/spage   Start page of article/chapter within volume/issue
    rft.ssn addata/ssn   Season: "winter", "spring", "summer", or "fall". For non-standard season, use chron.
    rft.stitle addata/stitle 245 a Short journal title: "J Am Med Assn". For full title, use jtitle.
    rft.title   245 a,b Book title (deprecated: use btitle), journal title (deprecated: use jtitle), dissertation title, patent title
    rft.tpages     Total pages: "392". Typically only for monographs (books and printed reports). May not be numeric: "F96".
    rft.volume addata/volume   Journal volume: "124". Typically numeric, but may be roman numerals, etc.
    svc.abstract     Abstract
    svc.any     Any format
    svc.citation     Citation
    svc.fulltext     Full text     Holdings information. This field is not used to hide services based on whether the record has holdings. If it is included in the OpenURL, it will be saved in the Context Object for use in the GES.
    svc.ill     Interlibrary loan


    Item-Level General Electronic Service

    When the General Electronic Service is added as an item level service, the URL template may be configured to make use of the following Holdings and item level information:

    Holdings/Item Element Name of Place Holder
    Current Library (Code) Library
    Current Location (Code) Location
    Current Call Number Call_Number
    Barcode Barcode
    Material Type (Code) Material_Type
    Current Item Policy (Code) Item_Policy
    Process Type (Code) Process_Type
    Item description Description

    In addition, it is possible to add fields from the Holdings record to the URL template. The placeholder syntax is HOL_{field}_{indicators}_{subfields}. The use of indicators is optional. For example:

    • HOL_506_ab - Alma will extract subfields a and subfield b from 506 field. Each subfield will be delimited from the next one with a space. The indicators are not taken into account.

    • HOL_506_12_df - Alma will extract subfields d and subfield f from 506 field only when indicators 1 and 2 exists. Each subfield will be delimited from the next one with a space.

    • HOL_506_1#_g - In this scenario, Alma will extract subfields g from 506 field only when the first indicator value is 1 with no dependency on the second indicator.

    A sample URL template may be : <baseURL>?LIB={library}&BARCODE={barcode}&FIELD1={HOL_506_ab}.