MODDATAIMP-729: SPIKE: Create design for creating/updating multiple Holdings and Items from a single imported MARC Bib

Spike: MODDATAIMP-729 - Getting issue details... STATUS

Features:

UXPROD-3729 - Getting issue details... STATUS

UXPROD-2741 - Getting issue details... STATUS


Summary

When libraries purchase multiple copies or volumes of a title, they often need to create or update multiple Inventory holdings and item records based on the import of a single MARC Bibliographic record. If the MARC Bib has been exported from FOLIO, then it likely has necessary matchpoints for identifying and updating the proper holdings and item records (e.g. HRIDs, UUIDs, barcode numbers). If the updates are received from an external source, the incoming records are not likely to include HRIDs or UUIDs, and the existing item records, which may have been created at point of order, may not include barcode numbers. For these records, the matching and updating may need to rely on secondary matchpoints such as location. 

Use cases

Num

Priority

(H/M/L)

Use caseCodeSource of import fileMatch point(s)NotesInterested Libraries
1
Update multiple existing holdings on a single existing instance DE:HeuMData ExportHoldings HRID or UUID
5C/UM, Holycross
2
Update multiple existing items on a single existing holdings record on a single existing instanceDE:He0S:IeuMData ExportItem HRID, UUID, or Barcode
5C/UM, Holycross

Update single existing items on multiple existing holdings records on a single existing instanceDE:He0M:IeuSData ExportItem HRID, UUID, or Barcode

Do we need a holdings match or just an item?

How does the incoming record indicate which holdings and which items belong together?

5C/UM: I would prefer to do this via Bulk Edit. In the meantime, I would say holdings and item match. Ideally it would be nice to have a selection to check off if you wanted to do all or a selection of the items.
4
Update multiple existing items on multiple existing holdings records on a single existing instanceDE:IeuM:He0MData ExportItem HRID, UUID, or Barcode

Do we need a holdings match or just an item?

How does the incoming record indicate which holdings and which items belong together?

5C/UM: Like above, I think Bulk Edit might be better suited for this. Until then, it would be great to be able to select which ones you want to change.
5
Update multiple existing holdings and multiple existing items on a single existing instanceDE:IeuM:HeuMData Export

Holdings HRID or UUID

Item HRID, UUID, or Barcode

How does the incoming record indicate which holdings and which items belong together?
6
Create multiple new holdings on a single existing instanceDE:HncMData ExportInstance HRID, UUID

7
Create multiple new items on a single existing holdings record on a single existing instanceDE:He0S:IncMData ExportHoldings HRID or UUIDDo we need an instance match or just a holdings?5C/UM: It would be great to match just on the holdings.
8
Create single new items on multiple existing holdings records on a single existing instanceDE:He0M:IncSData ExportHoldings HRID or UUID

Do we need an instance match or just a holdings?

How does the incoming record indicate which holdings and which items belong together?

5C/UM: If you do it with the holdings record match, then each record could have one holdings record uuid/hrid.
9
Create multiple new items on multiple existing holdings records on a single existing instanceDE:He0M:IncMData ExportHoldings HRID or UUID

Do we need an instance match or just a holdings?

How does the incoming record indicate which holdings and which items belong together?


10
Create multiple new holdings and multiple new items on a single existing instanceDE:HncM:IncMData Export

Instance HRID or UUID

How does the incoming record indicate which holdings and which items belong together?
11
Update multiple existing holdings on a single existing instance EX:HeuMExternal Source

Instance OCLC number, LCCN, POL, VRN ??

Holdings permanent location, POL, VRN??

How does the incoming record indicate which updates belong to which holdings?
12
Update multiple existing items on a single existing holdings record on a single existing instanceEX:He0S:IeuMExternal Source

Instance OCLC number, LCCN, POL, VRN??

Holdings permanent location, POL, VRN??

Item POL, VRN, barcode, ??

How does the incoming record indicate which updates belong to which item?
13
Update single existing items on multiple existing holdings records on a single existing instanceEX:He0M:IeuSExternal Source

Instance OCLC number, LCCN, POL, VRN??

Holdings permanent location, POL, VRN??

Item POL, VRN, barcode, status submatch ??

How does the incoming record indicate which updates belong to which item?

Does the incoming record need to indicate which items belong to which holdings?


14
Update multiple existing items on multiple existing holdings records on a single existing instanceEX:IeuM:He0MExternal Source

Instance OCLC number, LCCN, POL, VRN??

Holdings permanent location, POL, VRN??

Item POL, VRN, barcode, ??

How does the incoming record indicate which updates belong to which item? 

Does the incoming record need to indicate which items belong to which holdings?


15
Update multiple existing holdings and multiple existing items on a single existing instanceEX:IeuM:HeuMExternal Source

Instance OCLC number, LCCN, POL, VRN??

Holdings permanent location, POL, VRN??

Item POL, VRN, barcode, ??

How does the incoming record indicate which updates belong to which item and which holdings? 

Does the incoming record need to indicate which items belong to which holdings?


16
Create multiple new holdings on a single existing instanceEX:HncMExternal SourceInstance OCLC number, LCCN, POL, VRN??



17
Create multiple new items on a single existing holdings record on a single existing instanceEX:He0S:IncMExternal Source

Instance OCLC number, LCCN, POL, VRN??

Holdings permanent location, POL, VRN??

Does the incoming record need to indicate which items belong to which holdings?


18
Create single new items on multiple existing holdings records on a single existing instanceEX:He0M:IncSExternal Source

Instance OCLC number, LCCN, POL, VRN??

Holdings permanent location, POL, VRN??

Does the incoming record need to indicate which items belong to which holdings?

How does FOLIO know to create 1 item on each holdings?


19
Create multiple new items on multiple existing holdings records on a single existing instanceEX:He0M:IncMExternal Source

Instance OCLC number, LCCN, POL, VRN??

Holdings permanent location, POL, VRN??

Does the incoming record need to indicate which items belong to which holdings?

How does FOLIO know how many items to create on which holdings?


20
Create multiple new holdings and multiple new items on a single existing instanceEX:HncM:IncMExternal SourceInstance OCLC number, LCCN, POL, VRN??

Does the incoming record need to indicate which items belong to which holdings?

How does FOLIO know how many items to create on which holdings?


Codes: Read as File of records to be imported comes from a source. Scenario for state holdings records is action number. Scenario for state item records is action number

ValueMeaningCode
Record sourceData exportDE
Record sourceExternal sourceEX
Inventory record stateexistinge
Inventory record statenewn
Inventory record typeholdingsh
Inventory record typeitemi
Import actioncreatec
Import actionupdateu
Import actionnone0
NumberMultipleM
Number

Single*

*If item, single per holdings

S

NOTES

  • One import file may have bib records that represent multiple scenarios
  • If an instance has multiple holdings or items, an incoming import often only affects one or some of the holdings/items, not all of them

Developer questions for SMEs

NumStatusQuestionAnswerNotes
1

CLOSED

Is it OK to require that all data for a particular item or holdings has to be in the same MARC field, different subfields, and consistent for each holdings/item being created/updated? (see 945 field in below example)Yes
2

CLOSED

Is it OK to require that data used to find an existing holdings/item, or to identify which holdings an item should be created on is in the same MARC field/different subfield as the create/update data?Yes for the holdings/item. If first match is to an Instance-level HRID or POL and possibly submatch to Instance status, would that need to be in the same MARC field as the holdings/item data, or not necessary since Instance would be a completely separate match profile?
3

CLOSED

Is it OK to require that no other non-item/holdings data use that same MARC field? e.g. if 945 is being used for holdings/item data, don't include another 945 field with miscellaneous non-holdings/item notes or codesYes
4

CLOSED

Call numbers: If create/update includes call numbers that will vary from one holdings/item to another, is it OK to require that data to be in the MARC field along with the other create/update data? (e.g. LC versus accession numbers, or LC versus storage numbers)Yes
5

CLOSED

Call numbers: If create/update includes call numbers that will NOT vary from one holdings/item to another, the existing field mapping (e.g. 050, or 050/090 cascade, or 092, etc) will work fine. Yes
6

CLOSED

What should show in the import logs?
Summary versus details
For the individual holdings and items, include something to differentiate ones created/updated within the same instance (decided to use Permanent location for holdings, and HRID for items) 

See brief discussion in DI Subgroup Notes. To be continued
7

CLOSED

Confirm matchpoints for MARC records exported from FOLIO vs records sent by external sources; see above tableOthers besides ones in above table: URLs (holdings. items), accession numbers (items)
8

REVIEW

If nothing differentiates 2 existing items on the same holdings, would there need to be an option to "update" all of the items with the incoming data, and then the system just updates all the items in the sequence that they are linked to the holdings record. If it can't update all (maybe data only provided for 2 of the 3 items linked to a holdings), would FOLIO need to display a warning?



SAMPLE RECORD (not exported from FOLIO)

LDR 01262nam a2200301Ia 4500
001 ocm54341618
003 OCoLC
005 20070103101904.0
008 010330s1798\\\\enkaf\\\\\\\\\000\0\eng\d
035 $a(Sirsi) a551407
035 $a(Sirsi) o54341618
049 $aDRUM
040 $aCUD$beng$cCUD$dDRU$dMvI
050 $aBS2095$b.S33 1798
090 $aBS2095$b.S33 1798a
092 $b200$bSCARL$b1798
130 0\ $aBible.$pNew Testament$lEnglish.$sScarlett.$f1798245 12 $aA translation of the New Testament from the original Greek /$chumbly attempted by Nathaniel Scarlett, assisted by men of piety & literature ; with notes.
260 $aLondon :$bPrinted by T. Gillet; and sold by Nathaniel Scarlett, No. 349, near Exeter 'Change, Strand; also F. & C. Rivington, St. Paul's Church Yard,$c1798.
300 $axi, 483, vi p., [1] folded leaf of plates :$bill. ;$c19 cm.
500 $aEngraved t.p.
500 $aIncludes Observations on some terms used in this translation: vi p. at end.
510 3\ $aDarlow-Moule-Herbert 1433
700 1\ $aScarlett, Nathaniel,$d1753-1802.
740 02 $aObservations on some terms used in this translation.
945 $a34678234678246423786427$hKU/CC/DI/M <===== $a = item barcode, $b = copy number, $h = holdings permanent location
945 $a346782346$b2$hKU/CC/DI/M
945 $a34678234678246423786429$b1$hKU/CC/DI/A

If this record were updating holdings and items, it would do so as follows:

  • Update 1 instance, with the data in the main part of the MARC bib record
  • Update 2 holdings, 1 for permanent location KU/CC.DI/M and 1 for permanent location KU/CC/DI/A, using holdings mapping data from 945$h and the defaults in the holdings mapping profile
  • Update 3 item records, 2 linked to the holdings for KU/CC/DI/M and 1 linked to the holdings for KU/CC/DI/A, using item mapping data from 945$a, 945$b, and the defaults in the item mapping profile


Holdings and Item Fields: Map from incoming MARC, default in Field mapping profile, or Both?


Holdings fieldMap from incoming MARC?Default in field mapping profile?Notes
1Suppress from discovery


2Former Holdings ID


3Holdings type


4Statistical code


5Administrative note


6Permanent location


7Temporary location


8Shelving title


9Copy number


10

Call number type




11Call number prefix


12Call number


13Call number suffix


14Number of items


15

Holdings statement




16Holdings statement public note


17Holdings statement staff note


18Holdings stm supplements


19Holdings stm supplements public note


20Holdings stm supplements staff note


21Holdings stm indexes


22Holdings stm indexes public note


23Holdings stm indexes staff note


24ILL policy


25Digitization policy


26Retention policy


27Holdings note: type


28Holdings note: text


29Holdings note: staff only checkbox


30E-access: relationship


31E-access: URI


32E-access: link text


33E-access: materials specified


34E-access: URL public note


35Acquisition method


36Order format


37Receipt status


38Receiving history: public display checkbox


39Receiving history: enumeration


40Receiving history: chronology




<

Item fieldMap from incoming MARC?Default in field mapping profile?Notes
1Suppress from discovery


2Barcode


3Accession number


4Item identifier


5Former identifier


6Statistical code


7Administrative note


8Material type


9Copy number


10Call number type


11Call number prefix


12Call number


13Call number suffix


14Number of pieces


15Description of pieces


16Enumeration


17Chronology


18Volume


19Year, caption


20Number of missing pieces


21Missing pieces


22Missing pieces date


23Item damaged status


24Item damaged date


25Note type


26Note text


27Note staff only checkbox


28Permanent loan type


29Temporary loan type


30Status


31CICO note type


32CICO note text