Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


NameAlma Primo Catalog Addon
Version1.5.3
AuthorAtlas Systems, Inc.
DescriptionA catalog addon designed for libraries that utilize the Alma ILS and Primo as the discovery layer.
Custom Fields SupportNo


Info
titleDevelopers

This addon is available for developers to modify and extend. Developers are encouraged to submit changes to this addon by forking the git repository from https://github.com/AtlasSystems/AlmaPrimoCatalogAddon and creating a pull request.

...

SettingDefaultTypeDescription
Catalog URL

String

The base URL that the query strings are appended to. The Catalog URL structure is "{URL of the catalog}/primo-explore/".

Home URL

StringHome page of the catalog. The Home URL structure is "{URL of the catalog}/primo-explore/search?vid={4 Digit Primo Code}".
Remove Trailing Special Characters
True
BooleanDefines whether to remove trailing special characters on import or not. The included special characters are "\/+,.;:-=."
Search Priority List
Title, Author
String

The fields that should be searched on, in order of search priority. Each field in the string will be checked for a valid corresponding search value in the request,

and the first search type with a valid corresponding value will be used. Each search type must be separated by a comma.

Auto Retrieve Items
True
Boolean
Defines whether or not the addon should automatically retrieve items related to a record being viewed.
Disabling this setting can save the site on Alma API calls because it will only make a Retrieve Holdings List call when the button is pressed.
Alma API URL
StringThe URL to the Alma API
Alma API Key
StringAPI key used for interacting with the Alma API
Primo Site Code
String

The 4 digit code that identifies the site in Primo Deep Links. It is the code that follows the "vid=" in the Primo-Explorer URL.

Data Mappings

Below are the default configurations for the catalog addon. The mappings within DataMappings.lua are settings that typically do not have to be modified from site to site. However, these data mappings can be changed to customize the fields, search queries, and xPath queries to the data.

Warning
titleCaution

Be sure to backup the DataMappings.lua file before making modifications Incorrectly configured mappings may cause the addon to stop functioning correctly. 

Search Types

Default Configuration
Search TypeQuery String
DataMapping.SearchTypes["Title"]title
DataMapping.SearchTypes["Author"]creator
DataMapping.SearchTypes["Call Number"]lsr01
DataMapping.SearchTypes["Subject"]sub
DataMapping.SearchTypes["ISBN"]isbn
DataMapping.SearchTypes["ISSN"]issn
DataMapping.SearchTypes["Catalog Number"]any

...

The field that the addon reads from to perform the search.

Aeon

Default Configuration
FieldSource TableSource Field
DataMapping.SourceFields["Aeon"]["Title"]TransactionItemTitle
DataMapping.SourceFields["Aeon"]["Author"]TransactionItemAuthor
DataMapping.SourceFields["Aeon"]["Call Number"]TransactionCallNumber
DataMapping.SourceFields["Aeon"]["Catalog Number"]TransactionReferenceNumber
DataMapping.SourceFields["Aeon"]["Barcode"]TransactionItemNumber
DataMapping.SourceFields["Aeon"]["TransactionNumber"]TransactionTransactionNumber

Bibliographic Import

The information within this data mapping is used to perform the bibliographic api call. The Field is the product field that the data will be imported into, MaxSize is the maximum character size the data going into the product field can be, and Value is the xPath query to the information.

Info
titleNote

One may specify multiple xPath queries for a single field by separating them with a comma. The addon will try each xPath query and returns the first successful one.

Example: An author can be inside of 100$a and 100$b or 110$a and 110$b. To accomplish this, provide an xPath query for the 100 datafields and an xPath query for the 110 datafields separated by a comma.

//datafield[@tag='100']/subfield[@code='a']
|//datafield[@tag='100']/subfield[@code='b'],
//datafield[@tag='110']/subfield[@code='a']
|//datafield[@tag='110']/subfield[@code='b']

Item Import

The information within this data mapping is used import the correct information from the items grid. The Field is the product field that the data will be imported into, MaxSize is the maximum character size the data going into the product field can be, and Value is the FieldName of the column within the item grid.

Product FieldValueAlma API XML NodeDescription
ReferenceNumberReferenceNumbermms_idThe catalog identifier for the record (MMS ID)
CallNumberCallNumbercall_numberThe item's call number
LocationLocationlocationThe location of the item
LibraryLibrarylibraryThe library where the item is held
ItemNumberBarcodebarcodeThe item's barcode

...

Info
titleNote

The Holding ID and Item Description can also be imported by adding another table with a value of HoldingId and Description.

Customized Mapping

The CustomizedMapping.lua file contains the mappings to variables that are more site specific.

Location Mapping

Maps an item's location code to a full name. If a location mapping isn't given, the addon will display the location code. The location code is taken from the location node returned by a Retrieve Items List API call.

Info
titleExample
CustomizedMapping.Locations["{Location Code }"] = "{Full Location Name}"

FAQ

How to add or change what information is displayed in the item grid?

There's more item information gathered than what is displayed in the item grid. If you wish to display or hide additional columns on the item grid, find the comment -- Item Grid Column Settings within the BuildItemGrid()function in the Catalog.lua file and change the gridColumn.Visible variable of the column you wish to modify.

How to modify what bibliographic information is imported?

...

Config.xmlThe addon configuration file.
DataMapping.luaThe data mapping file contains mappings for the items that do not typically change from site to site.
CustomizedMapping.luaThe a data mapping file that contains settings that are more site specific and likely to change (e.g. location codes).
Catalog.luaThe Catalog.lua is the main file for the addon. It contains the main business logic for importing the data from the Alma API into the Atlas Product.
AlmaApi.luaThe AlmaApi file is used to make API calls against the Alma API
Utility.luaThe Utility file is used for common lua functions
Regex.luaImports .NET's RegEx into lua
WebClient.luaUsed for making web client requests.

...