Skip to content

Latest commit

 

History

History
160 lines (131 loc) · 5.41 KB

inventory-fields-used.md

File metadata and controls

160 lines (131 loc) · 5.41 KB

FOLIO inventory fields used by the Z39.50 server

Introduction

The FOLIO Z39.50 server fetches from mod-graphql a representation of an instance together with its holdings and their items. This is used in two ways: to generate the holdings part of OPAC XML records; and to furnish the data from which MARC holdings information is inserted into MARC records.

In both cases, the form of the data that is used is what's generated by the makeHoldingsRecords function in Net::Z3950::FOLIO::HoldingsRecords, so we can determine from that function (and its subfunctions) which fields from the GraphQL response are actually used.

Instance level

Notably, no fields at all from the instance record are used, since equivalent information is always included in the MARC record obtained from SRS and which is included as the bibliographicRecord part of OPAC records.

The makeHoldingsRecords function shows that the only relevant part of the instance record is the array of holdings objects:

OPAC field FOLIO instance field Notes
(top level) holdingsRecords2 See below

Holdings level

The _makeSingleHoldingsRecord function (and its subfunctions) show that the following fields from the FOLIO holdings record are used (as well as information extracted from the MARC leader):

OPAC field FOLIO holdings field Notes
nucCode location->institution->name May be temporary or permanent location
localLocation location->library->name May be temporary or permanent location
shelvingLocation location->name May be temporary or permanent location
_callNumberPrefix callNumberPrefix
callNumber callNumber
_callNumberSuffix callNumberSuffix
shelvingData shelvingTitle
copyNumber copyNumber
publicNote notes->holdingsNoteType->name,
notes->note
reproductionNote notes->holdingsNoteType->name,
notes->note
circulations bareHoldingsItems See below

Item level

The _makeSingleItemRecord function (and its subfunctions) show that the following fields from the FOLIO item record are used (as well as location fields from the holdings record):

OPAC field FOLIO item field Notes
availableNow discoverySuppress, status->name
availableThru materialType->name
restrictions status->name
itemId barcode
_enumeration enumeration
_chronology chronology
enumAndChron enumeration, chronology
temporaryLocation See note 1 May be temporary or permanent location
_permanentLocation See note 1 Based on permanentLocation only
callNumber effectiveCallNumberComponents->callNumber
_callNumberPrefix effectiveCallNumberComponents->prefix
_callNumberSuffix effectiveCallNumberComponents->suffix
_volume volume
_yearCaption yearCaption
_accessionNumber accessionNumber
_copyNumber copyNumber
_descriptionOfPieces descriptionOfPieces
_discoverySuppress discoverySuppress
_hrid hrid
_id id
_itemIdentifier itemIdentifier

Note 1. Location calculation is complex. It uses location->name when that exists, and otherwise uses and or all of location->institution->name, location->campus->name, location->library->name, and location->primaryServicePointObject->name.

Summary

The following FOLIO-inventory fields are used in creating the Z39.50 holdings information for the OPAC record and MARC holdings:

holdingsRecords2
  temporaryLocation
    institution
      name
    library
      name
  permanentLocation
    institution
      name
    library
      name
  name
  callNumberPrefix
  callNumber
  callNumberSuffix
  shelvingTitle
  copyNumber
  notes
    holdingsNoteType
      name
    note
  bareHoldingsItems
    discoverySuppress
    status
      name
    materialType
      name
    barcode
    enumeration
    chronology
    temporaryLocation
      name
      institution
        name
      campus
        name
      library
        name
      primaryServicePointObject
        name
    permanentLocation
      name
      institution
        name
      campus
        name
      library
        name
      primaryServicePointObject
        name
    effectiveCallNumberComponents
      callNumber
      prefix
      suffix
    volume
    yearCaption
    accessionNumber
    copyNumber
    descriptionOfPieces
    hrid
    id
    itemIdentifier

Caveat

The whole GraphQL response is included in records requested with syntax json nd (in transliterated form) with syntax xml and element-set raw. So fields not used in OPAC or MARC holdings may conceivable be in use by client code that uses these record syntaxes.