Ready to Learn?Ex Libris products all provide open APIs

Alma - RFID Integration

Note: This functionality is subject to changes.
 
Radio Frequency Identification (RFID) is an automatic identification method, relying on storing and remotely retrieving data using devices called RFID tags or transponders. An RFID tag is an object that can be attached to or incorporated into a product for the purpose of identification using radio waves. RFID tags can be used in various implementations for attaching identification or other information to any object. Once in their receiving range, radio-enabled machines can identify the object or read other information that is attached to the object and use it a large range of purposes.

RFID tags are mainly used in libraries for the following purposes:
  • Replacing barcode scanners and other traditional methods of identifying items
  • Using security gates to detect an un-authorized check-out. RFID-enabled security gates can be placed at the library entrances. The gates can read the RFID tag of every item that comes into their radio range and detect whether or not the item has been tagged as ‘allowed for check-out’. If an item leaves the library without the RFID tag being updated, the gates will issue an alarm for the staff to act upon.
The purpose of this document is to describe how Alma works within a library that is RFID-enabled.

 

General

Alma communicates with RFID devices that are installed locally on a staff workstation. In order to allow communication between Alma and the locally running RFID software, a proxy should be installed on the workstation. The following diagram illustrates the communication:
 
 
Supported browsersFirefox, Chrome
Supported vendors

3M™ RFID Staff Workstation (Model 896)
Bibliotheca (liber8connet)
Seret (Italy)

Supported actionsRead barcode from item on pad
Update security tag on loan and return
Update item information (for single piece item and multi pieces item)
Communication protocolHTTP

 

Setup and configuration

The following steps are required in order to set Alma up to work within a library that is RFID-enabled:
  1. Install the RFID local server according to the vendor’s instructions.
  2. Configure a proxy to allow communication between Alma and the RFID software. Below are instructions for the nginx proxy. (Not needed for Seret)
  3. Define an integration profile in Alma

 

To configure nginx:

  1. Install nginx from https://www.nginx.com
  2. In nginx.conf, remove the section starting with "location / " and instead add:
location / {
   proxy_pass   http://127.0.0.1:21645;
   proxy_set_header Host      $host;
   proxy_set_header X-Real-IP $remote_addr;

   # According to http://enable-cors.org/server_nginx.html
   if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'SOAPAction,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain charset=UTF-8';
            add_header 'Content-Length' 0;
            return 204;
    }

    if ($request_method = 'POST') {
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Allow-Credentials' 'true' always;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
            add_header 'Access-Control-Allow-Headers' 'SOAPAction,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type' always;
   }
}
Note that proxy_pass defines the path of the RFID reader.
In the example above, the definition is with the 3M default port.  For Bibiotheca liber8connect use port 53535.
If you installed the RFID reader with a different port, it should be specified accordingly.   

 

  1. In nginx.conf, define the port in which nginx is listening. In the following example it is 5000:
    server {
       listen       5000;
       server_name  localhost;

 

To configure a RFID type of integration profile in Alma:

Follow the OLH instructions.
Regarding the RFID server URL:
  • For 3M™ RFID Staff Workstation (Model 896): http://localhost:5000/TagService
  • For Bibiotheca liber8connect: http://localhost:5000/BibliothecaRFIDPadService.svc
  • For Seret - NGINX isn't needed so we link directly to the RFID driver: e.g. htttp://localhost:1801

Important: you can configure nginx to listen on any port and then set the Server URL to http://localhost:{port}/TagService.
In the above example, nginx was configured to listen on 5000.
 

Working with RFID-enabled Alma workstation

If a RFID integration profile is defined, then Alma displays a connection icon on the menu bar:
 
 
The connection is maintained per user and desk/department. When switching to a new desk, you will need to activate the connection again by clicking the connection icon.

When the connection is active, an RFID communication pop-up window is displayed:
 
 
 
This window must be left open in order to allow the RFID-enabled communication.
This window includes the communication log (in the bottom text-box). This log appear after clicking on the RFID connector window.
In case of a problem, please include that log (as well as the nginx log) in the SF case.
 
A “Read RFID” button will be displayed in the following places:
  • Patron Services Workbench
  • Return Workbench
  • Scan In interface (both tabs)
  • Repository Search
  • Persistent search bar
  • Physical item editor
  • Quick Cataloging
  • Receive 

For example:

 
 
Pressing this button will fill the relevant text box with the barcode of the item which is placed on the RFID device.
In case of loan, return and scan-in operation, the item’s security bit will be updated accordingly.
 
 
The ability to “Write RFID” will be displayed in the following places:
  • Physical Item Editor
  • Quick Cataloging
  • Receive

For example:

 
 
Pressing this button will send to the item on the RFID device the information on the item. The information sent to the device varies per device.
In order to support multiple piece items Alma will write to each piece one at a time.
 For more information, see Alma OLH.

 

Troubleshooting

It is possible to monitor the communication between Alma and the RFID reader using browser's tools. This is useful for cases in which an error returned, or the barcode was not read.
Following are screen captures that illustrate monitoring in Chrome. Similar functionality exists in other browsers as well:
On the popup, press F12 or right-click and choose Inspect:

In the Network tab you'll see a line for each API request sent to Nginx:

Press on the Red line (with status 500), and see the XML in the Response tab. This xml might be helpful in order to analyze the problem. If you open a support case on the subject, include this xml.
 
 

When there is no error message, it might be that the RFID driver isn't installed on the PC. To verify it, open the Control Panel, double-click Administrative Tools, and then double-click Services. Look for the below services:

3M:

Bibliotheca: