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
- 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.
- 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
Flow
Step-by-step:
- Updated MARC-record sends to the "mod-source-record-manager" on the specific endpoint for updating MARC-records.
- "mod-source-record-manager" updates this MARC-record in the "mod-source-record-storage" using generationId-mechanism.
- "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.
- "mod-pubsub" receives this event and "mod-inventory" catches it as "subscriber" for this eventType.
- "mod-inventory" retrieves eventPayload and builds new Instance based on its data using "data-import-processing-core". After that, "mod-inventory" updates this instance.
...