Versions Compared

Key

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

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Jira Legacy
server

...

FOLIO Issue Tracker
serverId

...

6ccf3fe4-

...

3301-

...

368a-

...

983e-

...

20c466b11a49
keyMODSOURMAN-262

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.

...

MethodPathProvided permissionsRequestResponseDescriptionNotes
PUT/change-manager/parsedRecords/{id}change-manager.parsed-records.putcompatible parsed record204 UPDATED (compatible-parsed-record)Update parsed record{id} - parsed record id
GET/source-storage/records/{id}source-storage.records.getNA200 OK (compatible-record)Retrieve rcord by id{id} - record id
POST/source-storrage/snapshotssource-storage.snapshots.postcompatible snapshot201 CREATEDCreate new snapshot
POST/source-storage/recordssource-storage.records.postcompatible record201 CREATEDCreate new record
POST/inventory/handlers/quick-markinventory.events.postevent200 OKEvent handler

Tickets for implementing endpoints which do not exist yet:

  1. PUT /change-manager/parsedRecords/{id} - 
    Jira Legacy
    serverSystem JiraFOLIO Issue Tracker
    serverId01505d016ccf3fe4-b8533301-3c2e368a-90f1983e-ee9b165564fc20c466b11a49
    keyMODSOURMAN-268
  2. POST /inventory/handlers/quick-mark - 
    Jira Legacy
    serverSystem JiraFOLIO Issue Tracker
    serverId01505d016ccf3fe4-b8533301-3c2e368a-90f1983e-ee9b165564fc20c466b11a49
    keyMODINV-207

Schema:

Step-by-step guide:

  1. Updated MARC-record sends to the "mod-source-record-manager" on the specific endpoint for updating MARC-records: PUT /change-manager/parsedRecords/{id}
  2. "mod-source-record-manager" retrieves record by its id: GET /source-storage/records/{id}
  3. "mod-source-record-manager"  creates new snapshot: POST /source-storage/snapshots
  4. "mod-source-record-manager" creates this MARC-record in the "mod-source-record-storage" using generationId-mechanism as new record: POST /source-storage/records
  5. "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.
  6. "mod-pubsub" receives this event and "mod-inventory" catches it as "subscriber" for this eventType via: POST /inventory/handlers/quick-mark event handler.
  7. "mod-inventory" retrieves eventPayload and builds new Instance based on its data using "data-import-processing-core". After that, "mod-inventory" updates this instance. Note: will be updated only those fields, which are controlled by MARC-record. The Instance's UUID and HRID will be the same. Moreover, there will be used mod-inventory's standard mechanism for Instance updating in mod-inventory. So, the behaviour updating Instances will be the same way as like in FOLIO(The same for fields, such as "created" or "updated" dates).used. That means the metadata "updated date" will be revised appropriately. 

The result: an updated SRS MARC Bibliographic record and an updated Inventory Instance record.

...