Uploaded image for project: 'mod-source-record-storage'
  1. mod-source-record-storage
  2. MODSOURCE-274

SPIKE: Store MARC Holdings record



    • eHoldings Sprint 118, eHoldings Sprint 119
    • 5
    • Spitfire



      Several FOLIO libraries want the ability to manage MARC holdings record in FOLIO. Assumption: Note that most libraries will not use data import to migrate MARC holdings record into FOLIO. Libraries will load directly to the database/SRS. See NFRs - Import Holdings Record tab. Future phase of development should support the following data import actions BUT NOT this story. When defining the technical approach, we should be aware of such future development.

      • Create a MARC holdings record
      • Create a MARC bib record and holdings record based on MARC bib record metadata
      • Update MARC holdings record
      • Update MARC holdings data based on MARC bib record metadata?

      This requirement is only about storing the MARC holdings record NOT the work to connect the MARC holdings record to a FOLIO Holdings record.

      Requirements for Storing a MARC holdings record in SRS

      1. Support generating a MARC holdings-SRS UUID and populate as MARC 999 ff $s
      2. Handling MARC 001
        1. Support assigning a HRID in the MARC 001 if a library has setup HRID assignment for MARC holdings record see
        2. If MARC holdings record already has a MARC 001 value AND has setup HRID assignment for a MARC holdings record THEN do not populate or generate a HRID for that record
      3. The following MARC tags should have the same logic applied to storing a MARC bib record
        1. MARC 005
        2. MARC 999 ff $s
      4. MARC 004 must have a value (should be the linked MARC bib record's 001 value). Can only have one value.

      Examples of MARC holdings records are available

      Technical approach:

      • Create handler MarcHoldingEventHandler in SRS like MarcAuthorityEventHandler
      • Add enum DI_SRS_MARC_HOLDING_RECORD_CREATED  in the JournalParams in the SRM
      • Skip holding from payload, when snapshot will be generated (RecordsPublishingServiceImpl in the SRM)
      • Add DI_SRS_MARC_HOLDING_RECORD_CREATED for DataImportConsumersVerticle in the SRS


      • Should we block generating a MARC holdings record when a user attempts to link to a FOLIO instance record w/o MARC as a Source?
      • In other words, does this a FOLIO source instance record + MARC holdings record, a use case to handle? OR MARC source instance record + FOLIO holdings record?

      Spike Objectives

      • Validate above technical approach meets specified requirements.
      • Present technical approach to Spitfire team, Folijet dev representative, Folijet PO, and Folijet/Spitfire SA
      • Identify any dependencies, risks, and unknowns
      • Identify work to assign to Folijet or applicable dev team
      • Create user stories once approach approved


      TBD at grooming session

      TestRail: Results


          Issue Links



                Oleksandr Dekin Oleksandr Dekin
                kgambrell Khalilah Gambrell
                0 Vote for this issue
                1 Start watching this issue



                  TestRail: Runs

                    TestRail: Cases