@startuml !pragma teoz true !theme cerulean skinparam backgroundColor white autonumber "[0]" actor User as user participant "mod-data-import" as mdi participant "mod-srm" as srm participant "mod-srs" as srs participant "mod-inventory" as inv participant "mod-inventory-storage" as invs user -> srm: create job definition (profile, type) activate srm srm -> srm: create job srm --> user: jobId deactivate srm user -> mdi: upload MARC file and jobId activate mdi mdi -> mdi: split to chunks, store in memory mdi -> srm: export chunks to <> return deactivate mdi activate srm srm -> srm: start job progress srm -> srm: validate records (stored records are also persisted) srm -> srm: generate ID for Inventory record and set to '999 ff i' field srm -> srs: <> deactivate srm activate srs srs -> srs: persist to database srs -> srm: <> deactivate srs activate srm srm -> srm: create JSON payload (profile, parsed MARC, mapping parameters) srm -> inv: <> deactivate srm activate inv inv -> invs: OKAPI: create AUTHORITY activate invs invs -> invs: persist to database invs --> inv: result deactivate invs alt #Pink Creation Failed inv -> srm: <> activate srm srm -> srm: update job progress deactivate srm else #White inv -> srm: <> activate srm srm -> srm: update job progress deactivate srm deactivate inv end @enduml