Ebsco Discovery Service / III Request This Widget

Ebsco Discovery Service is pretty sweet, all things considered. They smash together their own databases with our catalog with other databases like JSTOR, ScienceDirect, and others. For a single index with a variety of types of material, it does a pretty good job providing an all-in-one bucket experience.

To request a book, you would have to know to click on "Classic Catalog View" - something none of our users did in usability testing.

This project is about adding a “Request This” widget to the EDS interface for books that are currently checked out. Prior to this project, the biggest usability failure of EDS was the ability to place holds on checked out books. There simply was no way to do it – you had to know the click on the small “Classic Catalog View” link on the left (see screenshot) to get to the screen that has a “Request This” link – something none of our users tried when we asked them to place a hold on a book.


This is a pretty basic function that combines some simple screen scraping with URL creation. Essentially, my widget looks on the screen for an item’s Ebsco accession number to determine if the item is a catalog record. If it is, then it proceeds to scrape real-time availability data from the page to determine if a book is requestable or not (we only allow requests on circulating books that are currently checked out). If it is requestable, it will display a link that places the hold.

Here’s a video of the widget in action for both requestable items, and items that cannot be requested.


The information circled is what determines the "requstability" of an item.

The first step is to look at your catalog records in Ebsco Discovery Service – and specifically, at the accession number. Our catalog records all contain the string “stedwards”, our institutional identifier, so the javascript code can quickly identify if the record is a catalog item or not.

The rest of the accession number is the item’s record number from Millennium. This is needed to make the “Request This” target URL, so the javascript grabs this, too.

Next, the javascript looks for a div marked “rtac”, which stands for Real-Time Availability Check. In this div, the javascript finds a table with three columns: location, call number, and availability. It stores each of these in its own variable.

What follows is the requestability logic – if the item has a DUE ##-##-#### status, it is requestable. If that is the case, then it makes a URL (using the Millennium record number) for requesting the item.

The rest of the logic provides additional information on how to get the item if it isn’t requestable. The location code “ONLINE” triggers a message telling the use where to click to access full-text. The LIBUSEONLY status triggers a message saying they can come to the library to use it, but it cannot be checked out. And so on…

Here’s the code in .txt format. (You may need to right-click and do a ‘Save as…’ to see the code.)

I added the variables at the beginning to make it easy to customize for your own institution. All you need to do is make a few decisions on what is requestable or not (do you allow users to place holds on available items?) and enter in your institution’s Ebsco Discovery Service identifier (ours is “stedwards”), along with how your EDS implementation represents AVAILABLE and CHECKED OUT items.


You’ll see his name multiple times in future posts – Doug Shuga. He’s a University of Texas iSchool student working with me for his capstone project. He and I tried to get the “Request This” widget to simply not show up for non-requestable items.  It could not be done. Even if you use javascript to overwrite (or hide) the widget, it causes code problems on the rest of the page. This means that the “Request This” Widget appears even when there is nothing to request. Like I mentioned above, it displays helpful text, but still, it would be better if it didn’t show up at all.

On a positive note, Ebsco’s next release will include the ability to turn off widgets based on data in the real-time availability check. This also makes me think that screen scraping won’t be necessary in future widgets, and that RTAC data will be available via a token.

This entry was posted in Ebsco Discovery Service, Millennium. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s