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.
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 |
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 |
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
.
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
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.