7. Create MARC Holdings

Spike: MODSOURCE-274 Store MARC Holdings record
UXPROD-1575 - Getting issue details... STATUS
MODSOURMAN-652 - Getting issue details... STATUS


Description

This page is created to describe a flow when the FOLIO Holdings records are getting created while importing MARC Holdings records using the data-import system.

The 'Create' is an action that is specified by the Action profile, so anytime the user needs to choose the Action profile when there is a need to create records. Also, the user needs to attach a Mapping profile, that is needed to allow generating Folio records from the incoming Marc SRS records using default mapping rules.

Action profile:                                                                                                                 Field Mapping profile:


Flow

The user uploads the MARC file, chooses an Action profile & Mapping profile on the UI application, starts the import process

Step№ModuleTaskEvent produced on task completion
1mod-data-importSends a batch of records to Kafka queueDI_RAW_RECORDS_CHUNK_READ

2



mod-source-record-manager

Receives a chunk of records,
Parses raw MARC records to JSON format,
Performs validation: if the Holdings record has a corresponding SRS Marc Bib record with the same Hrid (004 Holdings field) then the record is valid,
Logs invalid records without storing in SRS
Sends only valid records to Kafka queue to store in SRS

DI_RAW_RECORDS_CHUNK_PARSED
3mod-source-record-storageReceives the event from SRM, Stores Marc && Json Holdings records into the database and returns the result back via Kafka queueDI_PARSED_RECORDS_CHUNK_SAVED
4mod-source-record-managerReceives the event from SRS, creates JSON payload (containing parsed MARC, profile, mapping parameters) for further processing, and sends it to the queueDI_SRS_MARC_HOLDING_RECORD_CREATED
5mod-inventoryGenerate Holdings FOLIO record from Json SRS record using default mapping rules, Sends FOLIO record to mod-inv-storage

DI_ERROR
DI_INVENTORY_HOLDINGS_CREATED_READY_FOR_POST_PROCESSING

6mod-source-record-storageHoldings HRID is set to '001' MARC_BIB field,
The value from '001' is moved to '035',
Holdings ID is set to '999 ff i' field
DI_SRS_MARC_HOLDINGS_HRID_SET
7mod-inventoryUpdates the existing Folio record (Hrid only)DI_COMPLETE

Diagram

Source Attachement

PlantUML diagram