General Electronic Services (GES)

Reviewed and Revised by ERM Committee 
Table of ContentsIn-Depth Articles



General Electronic Services (GES) provide a variety of options to end-users in the Primo online services (aka "View It") menu. Most notable is ILLiad, but other common GES include "report a problem" forms, Google Scholar searches, ERIC searches, and ProQuest dissertation searches.

The initial display conditions of a GES are controlled its Service Details and Service Availability Rules. Display conditions may additionally be dependent upon your Display Logic Rules

Step-by-step guide

You must have System Administrator or Fulfillment Administrator privileges to complete this process.

  1. In Alma, go to Configuration > Fulfillment > General Electronic Services.

  2. Click Add Service. (To edit an existing service, click its title.)
  3. Service Code and Service Name are used only internally, within Alma. Code identifies the GES for things like Display Logic. Name can be more descriptive.
  4. Service Description is also internal-only and optional, but can be useful for recording notes. 
  5. Public Name is how the service appears to end-users in Primo.
  6. Public Note is optional but can provide additional info to end-users. You may use basic html coding in this field, for example, to provide a web link. 
  7. Display Location can be Viewit (the online full text services menu), Getit (the physical library items menu), both, or none (effectively disabling the GES).
  8. URL template is basically an openURL will vary depending on the type of service.
  9. Enable without login -Yes means that this GES will display only after an end-user has logged in to Primo. 
  10. Disable service offers several basic criteria for display. 

After you create the initial GES, you must then edit its Service Availability Rules (SAR).

  1. Go to the GES's Service Availability Rules tab.
  2. The Default Rule, at the bottom of the page, is always IsDisplay=False
  3. For a GES that needs no other display conditions, just edit the default rule. Click the ellipsis icon next to the rule and choose Edit.
  4. Under Output Parameters, change IsDisplay to True, then Save.
  5. On the SAR tab, click Save. Your rule is now being applied. 

Important points

  • There is a limit of 25 total resources (including full-text databases and GES) on the "View It" menu.
  • Order of the GES list here does not matter. Order is controlled under Configuration > Fulfillment > General Electronic Services Order
  • Order of SARs does matter; rules listed first are applied first.

Understanding Service Availability Rules

The Default Rule, at the bottom of every new SAR tab, will always be IsDisplay=False

  • For a simple GES that you want to display all the time, simply change the default rule to IsDisplay=True.
  • A GES that should display based upon specific criteria will require at least one additional SAR. 
    1. If you leave the default rule set to IsDisplay=False, then most of your additional rules will have the condition IsDisplay=True.
      1. Another way to say this: Never display this service unless X condition is present.
    2. If you change the default rule to IsDisplay=True, then most of your additional rules will have the condition IsDisplay=False.
      1. Another way to say this: Always display this service except when X condition is present.
  • Because the order of SARs matters, put the rule that will apply most broadly at the top of the list. The system will read rules until it finds one that applies, then stop. 
  • You can deactivate a rule without deleting it by toggling its Enabled button to off. 

Creating a SAR

  1. On the SAR tab, click Add Rule.
  2. Give the SAR a Name. The Description is optional.

    Because the conditions of an individual rule do not display on the SAR tab's rule list, it will make your life easier later to put the rule criteria into either the Name or the Description, as shown here:

  3. Click Add Parameter
  4. Name is the list of data fields.
  5. Operator is the condition (contains, is empty, is not empty, equals, does not equal, etc.)
  6. Value is what appears in the data field you chose.
  7. Click Add Parameter
  8. You may add multiple parameters; they will be treated as an AND operation (i.e., both parameters must be true for the rule to apply).
  9. Make sure IsDisplay is set as you prefer; True will be the default. 
  10. Click Save.
  11. NB when you are testing new rules: You must click Save on the SAR tab to make the rule live.

Tip for selecting fields and values to use in your parameters

  1. In Chrome, right-click in the background area of the Viewit or GetIt menu (it's an iframe)
  2. Select View Frame Source
  3. Remove view-source: from before "http" in the URL field
  4. Jump to the end of the URL, find svc_dat=getit and change it to svc_dat=CTO
  5. Press Enter. An XML page displays with the OpenURL elements for this record.

The PNX bookmarklet and, in the case of the link resolver, the openURL, may also be helpful for inspecting records. 

Use Case: ILLiad

Theoretically, your could have a single GES for ILLiad, but there is good reason to divide ILLiad into at least two, articles and books. Primarily, ILLiad's parsing limitations mean that you should not include ISBN and ISSN in the same URL Template. Splitting into two GES also allows you to present more specific information or instructions to the user about the different types of material.

More than two ILLiad services are possible; however, you would need to carefully tailor the conditions for their availability via SARs. 

ILLiad Articles

My library uses EZproxy (locally hosted) to authenticate users of ILLiad (hosted with OCLC), so our URL Template is our proxy prefix, followed by our ILLiad base address, followed by:

?Action=10&Form=30&rft.genre={rft.genre}&rft.title={rft.title}&rft.stitle={rft.stitle}&rft.atitle={rft.atitle}&rft.jtitle={rft.jtitle}&rft.date={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.pages={rft.pages}&rft.edition={rft.edition}&rft.issn={rft.issn}&rft.eissn={rft.eissn}&rft.au={rft.au}&rft.aulast={rft.aulast}&rft.aufirst={rft.aufirst}&rft.auinit={rft.auinit}&rft.pub={rft.pub}&rft.pubdate={rft.pubdate}&rft.pubyear={rft.pubyear}&rft.publisher={rft.publisher}&rft.place={rft.place}&rft.doi={rft.doi}&rfe_dat={rft.oclcnum}&rfr_id={rfr_id}

Currently, we have only one SAR:

If rft.genre=article, display=true

(Default is display=false)

ILLiad Books

The URL Template is slightly different from the one for articles:

?Action=10&Form=30&rft.genre={rft.genre}&rft.title={rft.btitle}&rft.stitle={rft.stitle}&rft.atitle={rft.atitle}&rft.date={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.au={rft.aulast},{rft.aufirst}&rft.auinit={rft.auinit}&rft.pub={rft.pub}&rft.publisher={rft.publisher}&rft.place={rft.place}&rft.doi={rft.doi}&rfe_dat={rft.oclcnum}&rfr_id={rfr_id}

Several SARs apply:

The first rule is display=false, so that any results coming from our systemwide shared library catalog will automatically be excluded.

The next rules are display=true. So if a result is from somewhere other than our shared catalog, and it is a book or book chapter, the ILLiad book option will appear. 

We also use a Display Logic rule to hide the ILLiad Books GES if our systemwide Resource Sharing option is present. 

Use Case: Report a Problem

SFX had a built-in "report a problem" form, but in Alma you must build your own. Once you have a form, you can link to it via a GES.

The form grabs the OpenURL data (i.e. the citation information and the URL of the link resolver menu) and passes it along to you for troubleshooting

Sample code for building your own form: 

Please note that the forms above are customized for their local circumstances; you will want to test their output and edit them to reflect your library's needs.

Once you have a reporting form, create a GES for it, as shown in this example:

For URL Template, I have the address of my library's web form, plus the openURL data we want to include. YOU CANNOT JUST COPY AND PASTE THIS LINK! YOU MUST EDIT IT TO PROVIDE YOUR OWN FORM'S ADDRESS.

http://library.csusb.edu/forms/Error/report.php?rft.issn={rft.issn}&rft.eissn={rft.eissn}&rft.isbn={rft.isbn}&rft.au={rft.au}&rft.ausuffix={rft.ausuffix}&rft.aucorp={rft.aucorp}&rft.volume={rft.volume}&rft.month={rft.month}&rft.genre={rft.genre}&rft.auinit={rft.auinit}&rft.pub={rft.pub}&rft.issue={rft.issue}&rft.place={rft.place}&rft.title={rft.title}&rft.stitle={rft.stitle}&rft.btitle={rft.btitle}&rft.jtitle={rft.jtitle}&rft.aufirst={rft.aufirst}&linktype=openurl&rft.atitle={rft.atitle}&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Aarticle&rft.auinit1={rft.auinit1}&rft.date={rft.year}&rft.year={rft.year}&url_ver=Z39.88-2004&rft.aulast={rft.aulast}&rft.spage={rft.spage}&rft.epage={rft.epage}&rfr_id=info:doi/{rfr_id}

Display location is Viewit only because this GES is only for reporting link resolver issues. 

This GES has only one SAR, IsDisplay=True.

Use Case: Google Scholar Search

Grabs the article title and plugs it into a Google Scholar search. This is handy for locating articles that may be available free via Institutional Repositories or are otherwise open access. 

URL Template is: 

https://scholar.google.com/scholar?as_q=%22{rft.atitle}%22&ie=utf8&oe=utf8

Display location can be just Viewit, or Viewit & Getit. If using the "both" option, you may wish to Disable service: When Resource is owned by institution

This GES has only one SAR, IsDisplay=True.

Use Case: ProQuest Dissertations Search

Grabs the dissertation title and plugs it into a search of the ProQuest Dissertations database(s). Since all CSUs have subscription access to at least one of the ProQuest disssertions products (Humanities & Social Sciences), make sure to proxy the URL so your off-campus users can get to the full text.

URL Template is: 

(your proxy prefix here)http://gateway.proquest.com/openurl?res_dat=xri%3Apqm&title={rft.btitle}&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adissertation&url_ver=Z39.88-2004&genre=dissertation

This GES requires some SARs so that it will display only on records for dissertations. 

My library uses a second Dissertations GES for dissertation references coming to the link resolver the PsycINFO and MLA databases. The SARs address conditions specifc to only those sources:

We use Display Logic rules to hide other service options, such as ILLiad, when a Dissertations GES is present.

Use Case: ERIC Documents Search

Our blended EBSCOhost results include results from ERIC. Many recent ERIC Documents are available free, so we wanted to offer an ERIC search rather than an ILLiad form.

URL Template is:

http://eric.ed.gov/?q=title%3A{rft.atitle}{rft.btitle}

This GES requires some SARs so that it will display only for ERIC Document records. Notice that rule one has two conditions:

Use Case: Hide Resource Sharing (CSU+) on the Link Resolver Services Menu

Please see Sarina Sinick's original wiki post, Hiding the CSU+ link on your Primo Services page, option 2.

What follows is a condensed version:

FIrst, create a placeholder GES that appears only in the link resolver.

  1. Give it a descriptive name, e.g. Hide CSU+
  2. Put any fake URL into the URL Template field; display it everywhere, disable service never.
  3. Change the default SAR to display=true, then create one additional SAR:

    If rfr_id contains primo.exlibrisgroup.com-01CALS_ALMA, display=false

The CALS_ALMA SAR should prevent your placeholder from appearing on the services menu for results from PCI or the CSU shared catalog. In other words, the Hide CSU+ GES should appear only in the link resolver. Test to verify before proceeding!

Then, create two Display Logic Rules, as follows:

  1. Hide service Resource Sharing Request with Resource Sharing System = Alma if exists service General Electronic Service with Service = Hide CSU+

  2. Hide service General Electronic Service with Service = Hide CSU+

The rules must go in this order! The first rule prevents resource sharing from showin up on any page where our placeholder GES appears.The second rule then hides the placeholder, so it won't confuse your users.