Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Requirements

Purpose: MARC Bibliographic records can be updated in a variety of ways - through an Import that updates it, or through quickMARC, or through MARCcat. Whenever/however an SRS MARC Bib record is updated, then the corresponding changes need to be made in the Instance fields that are controlled by the tenant's default map.

As a staff person
I want to see an updated Instance when the underlying SRS MARC Bib has been updated
So that I can have access to that updated information

Scenarios

  1. Scenario 1
    • Given the Inventory Instance View/Edit screens
    • When the underlying SRS MARC record is updated
    • And the updates affect fields that are part of the Tenant's default MARC Bib-Inventory Instance map
    • Then make the corresponding updates to the affected fields of the Instance automatically
    • NOTE: Changes could be adding fields, changing data in an existing field, or removing fields.
  2. Scenario 2
    • Ensure automated testing coverage for this new code is 80% plus

Acceptance testing:

  • Add some fields to an existing SRS MARC (e.g. add a 7xx contributor, or a 6xx subject heading, or a 5xx note), and check the related Instance to see if the new fields show up.
  • Change the data in some fields in an existing SRS MARC (e.g. change the 245 title, or change the publication date in 260/264 c, or change the 336 $b), and check the related Instance to see if the update data shows
  • Remove some fields from an existing SRS MARC (e.g. remove a 6xx subject heading, or a 5xx note, or 336/337/338), and check the related Instance to see if the removed data has disappeared
  • Add, change, and remove some fields in an existing SRS MARC record, and check the related Instance to ensure all corresponding changes have been made

NOTE: The default MARC Bib-Inventory Instance map may vary from tenant to tenant. Updates should be made based on the Instance fields mapped/controlled by the specific Tenant's default map.

The FOLIO-supplied default MARC-Instance map: https://github.com/folio-org/mod-source-record-manager/blob/master/mod-source-record-manager-server/src/main/resources/rules/rules.json

...

Approach & Design

Step-by-step:

  1. Updated MARC-record sends to the "mod-source-record-manager" on the specific endpoint for updating MARC-records.
  2. "mod-source-record-manager" updates this MARC-record in the "mod-source-record-storage" using generationId-mechanism.
  3. "mod-source-record-manager" publishes new event with eventType: "QM_SRS_MARC_BIB_RECORD_UPDATED". Event payload contains updated MARC-record and "rules.json"-file.
  4. "mod-pubsub" receives this event and "mod-inventory" catches it as "subscriber" for this eventType.
  5. "mod-inventory" retrieves eventPayload and builds new Instance based on its data using "data-import-processing-core". After that, "mod-inventory" updates this instance.

...