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

    Using the Availability Enrichment Program

    This information is not applicable to Primo VE environments. For more details on Primo VE configuration, see Primo VE.
    For ILS systems other than Aleph, Voyager, and Alma, it may be possible to extract the required information at the individual item and holdings record level. If this is the case, you can create the Library Level Availability field in two phases, as follows:
    1. Mapping the individual item/holdings record data to the Availability field in the Enrichment section of the PNX record. For more information, see The Availability Field in the Enrichment Section.
    2. Merging the individual item/holdings record information that was saved in the previous phase in the Enrichment section into a single Library Level Availability field per sub-location in the Display section of the PNX record by applying the Availability Enrichment program to your pipe. See How the Library Level Availability Field Is Created for more information.

    The Availability Field in the Enrichment Section

    The Availability field in the Enrichment section of the PNX record is an intermediate storage location for availability information that Primo extracts from the data source during the normalization process. To complete the mapping of the availability information, the enrichment program maps this data to Library Level Availability field in the Display section.
    Before the enrichment program can map this data to the Library Level Availability field of the Display section, you must map the availability information for each item/holdings record to an Availability field in the Enrichment section using the following subfields:
    • $$I – Primo institution code
    • $$L – Primo library code
    • $$1 – Sublocation
    • $$2 – Call number
    • $$S – Availability status (available, unavailable, or check_holdings)
    • $$6 – number of loans [optional]
    • $$9 – Online only indicator
    • $$P – Priority
    To map the data from the data source to the Availability field, you must first analyze the source system and data to determine which fields provide availability and location information, and then create the normalization rules needed to map these data elements. See the table below for more information on analyzing and mapping the data elements.
    Although it is difficult to generalize mapping rules because every data source is different, you should consider the following guidelines when creating your mapping rules:
    • The required data elements must be in the same field in the source record unless the same element can be shared for all of the fields (for example, all have the same institution).
    • Suppressed items or holdings (which are items that do not display in the ILS system) probably should not display in Primo. To suppress these items, omit them from the extract so that Primo does not harvest and display them.
    Mapping Data Source to Availability Field
    Subfield Description
    $$I
    Institution – If the Primo installation has a single institution, you can hard-code the institution into this subfield. Otherwise, it should be mapped from the relevant data.
    $$L
    Library – Determine which data elements can be mapped to the Primo library. If necessary, use a mapping table. If a single data element in the source can be mapped as is into the Primo library, then a mapping table is not required.
    $$1
    Sublocation – Determine which data elements can be mapped to the sub-location. If necessary, use a mapping table. Note that unlike the institution and the library, which contains codes, the sub-location contains the text that displays in the front-end.
    $$2
    Call number – Since only a single call number will be taken per sub-location, try to use a generic call number (possibly as present in a holdings record).
    $$S
    Status – Determine which data elements can be used to determine the status. Primo allows the following statuses:
    • Available – This status indicates that an item is not loaned, not lost, and not in processing (binding). Note that Primo considers items that are on the shelf but cannot be loaned as available items.
    • Unavailable – This status indicates that an item is on loan, in processing (binding), or lost or unavailable for some other reason.
    • Check-holdings – This status indicates that Primo does not have sufficient information and suggests that the user check detailed holdings in the ILS. It is recommended that you use this for journals and multi-volumes where it is not clear which volume the user is looking for. On the other hand, if journals never circulate in your library, the status could always be set to Available.
    $$6
    Number of loans – Optional, but Primo may use this field in the future for ranking purposes.
    $$9
    Online – Indicates that an item/holding record represents electronic material only. If all the enrichment/availability fields include $$9ONLINE, $$9ONLINE will be added to the display/availlibrary field. Primo will ignore these locations when it checks if an online resource also has physical items.
    $$P
    Priority – Indicates the priority of locations for the selection of the “best location” that displays in the Availability indicator in the results list. The location with the highest value that matches the availability status will be used. The Availability Enrichment routine will take the highest digit.

    How the Library Level Availability Field Is Created

    Primo uses the Availability Enrichment program to group all of the records with the same Institution ($$I), Library ($$L) and Sub-location ($$1) in the Availability fields of the Enrichment section and then merge them into a single Library Level Availability field in the Display section with the following subfields:
    • $$I – The institution is mapped from the Availability fields.
    • $$L – The library is mapped from the Availability fields.
    • $$1 – The sub-location is mapped from the Availability fields.
    • $$2 – The call number is mapped from the first Availability field in the group.
    • $$S – The status is calculated as follows:
      1. If one of the Availability fields ($$S) is check-holdings, assign a status of check-holdings.
      2. Otherwise, if one of the Availability fields ($$S) is available, assign a status of available.
      3. If neither is found, assign a status of unavailable.

    Example: Unicorn

    This example describes how Primo creates the Library Level Availability field in the Display section from a Unicorn extraction that was developed at Vanderbilt University.
    The relevant records in Unicorn include item records and holdings records. Holdings records are created only for multi-volume records (single-volume items do not have a holdings record in Unicorn).
    The following table shows the data elements for the 852 field that were extracted from the holdings records.
    Extracting the 852 Field from Holdings Records
    Subfield Description
    $$b
    Unicorn library – equivalent to 999 $m.
    $$c
    Location (permanent) – equivalent to 999 $l.
    $$hijz
    Call number
    $$z
    Public note
    The following table shows the data elements for the 999 field that were extracted from the item records.
    Extracting the 999 Field from Item Records
    Subfield Description
    $$a
    Call number
    $$w
    Classification scheme
    $$c
    Copy number
    $$I
    Item ID (barcode)
    $$d
    Last discharge/activity date
    $$e
    Last charge
    $$k
    Current location
    $$m
    Library
    $$n
    Total charges
    $$q
    In-house charges
    $$r
    Does the item circulate? Y/N
    $$s
    Is the item permanent? Y/N
    $$t
    Item type
    $$u
    Date created
    $$l
    Location (permanent)
    $$o
    Item notes
    During the normalization process, Primo uses the rules provided in the Unicorn template to map the relevant Unicorn fields (852 and 999) to the Availability field in the Enrichment section as follows:
    • If the record has an 852 field, Primo ignores the 999 fields and creates a matching Availability field as shown in the following table:
      Mapping the 852 Field to the Availability Field
      Subfield Description
      $$I
      Institution – a constant (or could be based on library)
      $$L
      Library – based on 852 $b and $c using a mapping table
      $$1
      Sub-location – 852 $c
      $$2
      Call number – 852 $h, $i, $j, $z
      $$S
      Status – Since this is a journal or multi-volume record, always assign check_holdings.
    • If there is no 852 field, then Primo creates an Availability field for every 999 field as shown in the following table:
      Mapping the 999 Field to the Availability Field
      Subfield Description
      $$I
      Institution – a constant (or could be based on library).
      $$L
      Library – based on 999 $$m and $$l using a mapping table.
      $$1
      Sub-location – 999 $$l.
      $$2
      Call number – 999 $$a.
      $$S
      Status – The status is based on a combination of $$m (library) + $$k (temporary location) or, if $$k is not present, $$L (permanent location) using a mapping table.
      If an item is on loan or missing, it will have a temporary location of CHECKED-OUT or MISSING.
    The Availability Enrichment program merges this information into a single Library Level Availability field as described in How the Library Level Availability Field Is Created.