MARC Holdings - Default Mapping profile
- Natalia Zaitseva
MODSOURCE-336 - Getting issue details... STATUS
IN PROGRESS
Mapping
Field group | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Leader |
| ||||||||||||||||||||||||||
Control fileds |
|
MARC Holdings | Inventory Holdings | Mapping profile | Notes | Rule | |||
---|---|---|---|---|---|---|---|
Data Fields | 014 | ||||||
035 | a | System control number (NR) | formerIds | Click here to expand... "035": [ | |||
Note Fields | 561 | Ownership and Custodial History | Natalia revise -561 field some code is already exists | 561 field | Click here to expand... "561": [ | ||
562 | Copy and Version Identification Note | 562 field | 562 field | Click here to expand... "562": [ | |||
563 | Binding Information | 563 field | Click here to expand... 563": [ | ||||
583 | Action Note | the same as 561 field | 583 field | Click here to expand... "583": [ | |||
Location and Access | 852 Location | b | Sublocation or collection | Might be covered in MappingManager.java permanentLocationId is required field! - skip record and an error(discarded) | Click here to expand... "852": [ | ||
First Indicator | What should happen if "Source specified in subfield $2"? - default mapping will not cover this, user should view the source for this subfuled $2 | ||||||
h | Classification part | callNumber | What is the delimiter? - space | ||||
i | Item part | ||||||
k | Call number prefix | callNumberPrefix | |||||
l | Shelving form of title | shelvingTitle | |||||
m | Call number suffix | callNumberSuffix | |||||
t | Copy number | copyNumber | Q- needed? | ||||
x | Nonpublic note | digitizationPolicy | 852 $x needed? | ||||
z | Public note | retentionPolicy | 852 $z needed? | ||||
856 Electronic Location and Access | u | Uniform Resource Identifier | electronic access uri | the same mapping as for MARC_BIB | Click here to expand... "856": [ { | ||
y | Link text | electronic link text | |||||
z | Public note | electronic access public note | |||||
$3 | Materials specified | electronic access material specified | |||||
866 | a | Textual holdings | holdings Statements | Click here to expand... "866": [ | |||
x | Nonpublic note | holdings Statements staff note | |||||
z | Public note | holdings Statements note | is it correct note = public note for statements - yes. | ||||
867 | a | Textual holdings | holdingsStatementsForSupplements statement | Click here to expand... "867": [ | |||
x | Nonpublic note | holdingsStatementsForSupplements staffNote | |||||
z | Public note | holdingsStatementsForSupplements note | |||||
868 | a | Textual holdings | holdingsStatementsForIndexes statement | Click here to expand... "868": [ | |||
x | Nonpublic note | holdingsStatementsForIndexes staffNote | |||||
z | Public note | holdingsStatementsForIndexes note |
NON -MARC fields
Inventory Instance field | Note | Mapping profile |
---|---|---|
discoverySuppress | Same mapping applied as for MARC_BIB | { "name": "discoverySuppress", "path": "holdings.discoverySuppress", "value": "", "enabled": "true", "subfields": [] } |
source | Same mapping applied as for MARC_BIB | { "name": "source", "path": "holdings.source", "value": "", "enabled": "false", "subfields": [] } |
Action plan:
Task | JIRA Ticket | High level estimation | |
---|---|---|---|
can be done in parallel | Add default mapping profile, action profile and relations between them in 'mod-data-import-converter-storage' for MARC Holdings. See example here | MODDICONV-199 - Getting issue details... STATUS | 2 |
Add rules in JSON format to 'mod-source-record-manager' module | MODSOURMAN-540 - Getting issue details... STATUS | 3 | |
can be done in parallel | Modify existing mapping endpoints to work with MARC Holdings rules | MODSOURMAN-539 - Getting issue details... STATUS | 3-5 |
Spike: define what is needed to update in 'mod-data-import-converter-storage' module to support creation of Inventory Holdings | MODDICONV-198 - Getting issue details... STATUS | 3 | |
Testing | |||
Test full data-import flow for MARC_HOLDINGS | |||
adjustments for MARC_HOLDINGS default profile | |||
additional modifications for fields logic in 'mod-source-record-manager', 'mod-inventory' | |||
test linkage between MARC_HOLDINGS and MARC_BIB |
Spike Outcome:
INSERT INTO ${myuniversity}_${mymodule}.action_profiles (id, jsonb) values ('8aa0b850-9182-4005-8435-340b704b2a19', '{ "id": "8aa0b850-9182-4005-8435-340b704b2a19", "name": "Default - Create Holdings", "action": "CREATE", "deleted": false, "metadata": { "createdDate": "2021-08-05T14:00:00.000", "updatedDate": "2021-08-05T15:00:00.462+0000", "createdByUserId": "00000000-0000-0000-0000-000000000000", "updatedByUserId": "00000000-0000-0000-0000-000000000000" }, "userInfo": { "lastName": "System", "userName": "System", "firstName": "System" }, "description": "This action profile is used with FOLIO''s default job profile for creating Inventory Holdings and SRS MARC Holdings records. It can be edited, duplicated.", "folioRecord": "HOLDINGS", "childProfiles": [], "parentProfiles": [] }') ON CONFLICT DO NOTHING; INSERT INTO ${myuniversity}_${mymodule}.mapping_profiles (id, jsonb) values ('13cf7adf-c7a7-4c2e-838f-14d0ac36ec0a', '{ "id": "13cf7adf-c7a7-4c2e-838f-14d0ac36ec0a", "name": "Default - Create holdings", "deleted": false, "metadata": { "createdDate": "2021-08-05T14:00:00.000", "updatedDate": "2021-08-05T15:00:00.462+0000", "createdByUserId": "00000000-0000-0000-0000-000000000000", "updatedByUserId": "00000000-0000-0000-0000-000000000000" }, "userInfo": { "lastName": "System", "userName": "System", "firstName": "System" }, "description": "This field mapping profile is used with FOLIO''s default job profile for creating Inventory Holdings and SRS MARC Holdings records. It can be edited, duplicated, deleted, or linked to additional action profiles.", "childProfiles": [], "mappingDetails": { "name": "holdings", "recordType": "HOLDINGS", "mappingFields": [ { "name": "hrid", "path": "holdings.hrid", "value": "", "enabled": "false", "subfields": [] }, { "name": "holdingsTypeId", "path": "holdings.holdingsTypeId", "value": "", "enabled": "false", "subfields": [] }, { "name": "discoverySuppress", "path": "holdings.discoverySuppress", "value": "", "enabled": "false", "subfields": [] }, { "name": "formerIds", "path": "holdings.formerIds", "value": "", "enabled": "false", "subfields": [] }, { "name": "instanceId", "path": "holdings.instanceId", "value": "", "enabled": "false", "subfields": [] }, { "name": "permanentLocationId", "path": "holdings.permanentLocationId", "value": "", "enabled": "false", "subfields": [] }, { "name": "temporaryLocationId", "path": "holdings.temporaryLocationId", "value": "", "enabled": "false", "subfields": [] }, { "name": "effectiveLocationId", "path": "holdings.effectiveLocationId", "value": "", "enabled": "false", "subfields": [] }, { "name": "callNumberTypeId", "path": "holdings.callNumberTypeId", "value": "", "enabled": "false", "subfields": [] }, { "name": "callNumberPrefix", "path": "holdings.callNumberPrefix", "value": "", "enabled": "false", "subfields": [] }, { "name": "callNumber", "path": "holdings.callNumber", "value": "", "enabled": "false", "subfields": [] }, { "name": "callNumberSuffix", "path": "holdings.callNumberSuffix", "value": "", "enabled": "false", "subfields": [] }, { "name": "shelvingTitle", "path": "holdings.shelvingTitle", "value": "", "enabled": "false", "subfields": [] }, { "name": "acquisitionFormat", "path": "holdings.acquisitionFormat", "value": "", "enabled": "false", "subfields": [] }, { "name": "acquisitionMethod", "path": "holdings.acquisitionMethod", "value": "", "enabled": "false", "subfields": [] }, { "name": "receiptStatus", "path": "holdings.receiptStatus", "value": "", "enabled": "false", "subfields": [] }, { "name": "illPolicyId", "path": "holdings.illPolicyId", "value": "", "enabled": "false", "subfields": [] }, { "name": "retentionPolicy", "path": "holdings.retentionPolicy", "value": "", "enabled": "false", "subfields": [] }, { "name": "digitizationPolicy", "path": "holdings.digitizationPolicy", "value": "", "enabled": "false", "subfields": [] }, { "name": "copyNumber", "path": "holdings.copyNumber", "value": "", "enabled": "false", "subfields": [] }, { "name": "numberOfItems", "path": "holdings.numberOfItems", "value": "", "enabled": "false", "subfields": [] }, { "name": "electronicAccess", "path": "holdings.electronicAccess[]", "value": "", "enabled": "false", "subfields": [] }, { "name": "notes", "path": "holdings.notes[]", "value": "", "enabled": "false", "subfields": [] }, { "name": "holdingsStatements", "path": "holdings.holdingsStatements[]", "value": "", "enabled": "false", "subfields": [] }, { "name": "holdingsStatementsForIndexes", "path": "holdings.holdingsStatementsForIndexes[]", "value": "", "enabled": "false", "subfields": [] }, { "name": "holdingsStatementsForSupplements", "path": "holdings.holdingsStatementsForSupplements[]", "value": "", "enabled": "false", "subfields": [] }, { "name": "receivingHistory", "path": "holdings.receivingHistory", "value": "", "enabled": "false", "subfields": [] }, { "name": "statisticalCodeIds", "path": "holdings.statisticalCodeIds[]", "value": "", "enabled": "false", "subfields": [] }, { "name": "holdingsItems", "path": "holdings.holdingsItems[]", "value": "", "enabled": "false", "subfields": [] }, { "name": "bareHoldingsItems", "path": "holdings.bareHoldingsItems[]", "value": "", "enabled": "false", "subfields": [] }, { "name": "holdingsInstance", "path": "holdings.holdingsInstance", "value": "", "enabled": "false", "subfields": [] }, { "name": "sourceId", "path": "holdings.sourceId", "value": "", "enabled": "false", "subfields": [] } ], "marcMappingDetails": [] }, "parentProfiles": [], "existingRecordType": "HOLDINGS", "incomingRecordType": "MARC_HOLDINGS", "marcFieldProtectionSettings": [] } ') ON CONFLICT DO NOTHING; INSERT INTO ${myuniversity}_${mymodule}.job_to_action_profiles (id, jsonb) values ('866a90ce-53b2-4b7b-afb5-d3a564e5087e', '{ "id": "866a90ce-53b2-4b7b-afb5-d3a564e5087e", "order": 0, "triggered": false, "detailProfileId": "8aa0b850-9182-4005-8435-340b704b2a19", "masterProfileId": "80898dee-449f-44dd-9c8e-37d5eb469b1d", "detailProfileType": "ACTION_PROFILE", "masterProfileType": "JOB_PROFILE" }') ON CONFLICT DO NOTHING; INSERT INTO ${myuniversity}_${mymodule}.action_to_mapping_profiles (id, jsonb) values ('8aa0b850-9182-4005-8435-340b704b2a19', '{ "id": "8aa0b850-9182-4005-8435-340b704b2a19", "order": 0, "triggered": false, "detailProfileId": "13cf7adf-c7a7-4c2e-838f-14d0ac36ec0a", "masterProfileId": "8aa0b850-9182-4005-8435-340b704b2a19", "detailProfileType": "MAPPING_PROFILE", "masterProfileType": "ACTION_PROFILE" }') ON CONFLICT DO NOTHING;
{
"001": [
{
"target": "hrid",
"description": "The human readable ID",
"subfield": [],
"rules": []
},
{
"target": "holdingsTypeId",
"description": "",
"subfield": [],
"rules": [
{
"description": "Holdings type based on 6 leader`s byte",
"conditions": [
{
"type": "set_holdings_type_id",
"LDR": true
}
]
}
]
}
],
"035": [
{
"entityPerRepeatedSubfield": true,
"entity": [
{
"target": "formerIds",
"description": "",
"subfield": [
"a"
]
}
]
}
],
"561": [
{
"entity": [
{
"target": "notes.holdingsNoteTypeId",
"description": "Holdings note type id",
"applyRulesOnConcatenatedData": true,
"subfield": [
"a",
"u",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [
{
"type": "set_holdings_note_type_id",
"parameter": {
"name": "Provenance"
}
}
]
}
]
},
{
"target": "notes.note",
"description": "Provenance note data",
"applyRulesOnConcatenatedData": true,
"subFieldDelimiter": [
{
"value": " ; ",
"subfields": [
"a",
"u",
"3",
"5",
"6",
"8"
]
}
],
"subfield": [
"a",
"u",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [
{
"type": "trim"
}
]
}
]
},
{
"target": "notes.staffOnly",
"description": "If true, determines that the note should not be visible for others than staff",
"applyRulesOnConcatenatedData": true,
"subfield": [
"a",
"u",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [],
"value": "false"
}
]
}
]
}
],
"562": [
{
"entity": [
{
"target": "notes.holdingsNoteTypeId",
"description": "Holdings note type id",
"applyRulesOnConcatenatedData": true,
"subfield": [
"a",
"b",
"c",
"d",
"e",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [
{
"type": "set_holdings_note_type_id",
"parameter": {
"name": "Copy note"
}
}
]
}
]
},
{
"target": "notes.note",
"description": "Copy note data",
"applyRulesOnConcatenatedData": true,
"subFieldDelimiter": [
{
"value": " ; ",
"subfields": [
"a",
"b",
"c",
"d",
"e",
"3",
"5",
"6",
"8"
]
}
],
"subfield": [
"a",
"b",
"c",
"d",
"e",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [
{
"type": "trim"
}
]
}
]
},
{
"target": "notes.staffOnly",
"description": "If true, determines that the note should not be visible for others than staff",
"applyRulesOnConcatenatedData": true,
"subfield": [
"a",
"b",
"c",
"d",
"e",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [],
"value": "false"
}
]
}
]
}
],
"563": [
{
"entity": [
{
"target": "notes.holdingsNoteTypeId",
"description": "Holdings note type id",
"applyRulesOnConcatenatedData": true,
"subfield": [
"a",
"u",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [
{
"type": "set_holdings_note_type_id",
"parameter": {
"name": "Binding"
}
}
]
}
]
},
{
"target": "notes.note",
"description": "Binding note data",
"applyRulesOnConcatenatedData": true,
"subFieldDelimiter": [
{
"value": " ; ",
"subfields": [
"a",
"u",
"3",
"5",
"6",
"8"
]
}
],
"subfield": [
"a",
"u",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [
{
"type": "trim"
}
]
}
]
},
{
"target": "notes.staffOnly",
"description": "If true, determines that the note should not be visible for others than staff",
"applyRulesOnConcatenatedData": true,
"subfield": [
"a",
"u",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [],
"value": "false"
}
]
}
]
}
],
"583": [
{
"entity": [
{
"target": "notes.holdingsNoteTypeId",
"description": "Holdings note type id",
"applyRulesOnConcatenatedData": true,
"subfield": [
"a",
"b",
"c",
"d",
"e",
"f",
"h",
"i",
"j",
"k",
"l",
"n",
"o",
"u",
"x",
"z",
"2",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [
{
"type": "set_holdings_note_type_id",
"parameter": {
"name": "Action note"
}
}
]
}
]
},
{
"target": "notes.note",
"description": "Action note data",
"applyRulesOnConcatenatedData": true,
"subFieldDelimiter": [
{
"value": " ; ",
"subfields": [
"a",
"b",
"c",
"d",
"e",
"f",
"h",
"i",
"j",
"k",
"l",
"n",
"o",
"u",
"x",
"z",
"2",
"3",
"5",
"6",
"8"
]
}
],
"rules": [
{
"conditions": [
{
"type": "trim"
}
]
}
]
},
{
"target": "notes.staffOnly",
"description": "If true, determines that the note should not be visible for others than staff",
"subfield": [
"a",
"b",
"c",
"d",
"e",
"f",
"h",
"i",
"j",
"k",
"l",
"n",
"o",
"u",
"x",
"z",
"2",
"3",
"5",
"6",
"8"
],
"rules": [
{
"conditions": [],
"value": "false"
}
]
}
]
}
],
"852": [
{
"entity": [
{
"target": "callNumberTypeId",
"description": "Call number type, defined by 1st indicator",
"subfield": [
],
"rules": [
{
"conditions": [
{
"type": "set_call_number_type_id"
}
]
}
]
},
{
"target": "permanentLocationId",
"description": "",
"subfield": [
"b"
],
"rules": [
{
"conditions": [
{
"type": "set_permanent_location_id"
}
]
}
]
},
{
"target": "callNumber",
"applyRulesOnConcatenatedData": true,
"description": "",
"subfield": [
"h",
"i"
],
"subFieldDelimiter": [
{
"value": " ",
"subfields": [
"h",
"i"
]
}
]
},
{
"target": "callNumberPrefix",
"description": "",
"subfield": [
"k"
]
},
{
"target": "shelvingTitle",
"description": "",
"subfield": [
"l"
]
},
{
"target": "callNumberSuffix",
"description": "",
"subfield": [
"m"
]
},
{
"target": "copyNumber",
"description": "",
"subfield": [
"t"
]
}
]
}
],
"856": [
{
"entity": [
{
"target": "electronicAccess.relationshipId",
"applyRulesOnConcatenatedData": true,
"description": "Relationship between the electronic resource at the location identified and the item described in the record as a whole",
"subfield": [
"3",
"y",
"u",
"z"
],
"rules": [
{
"conditions": [
{
"type": "set_electronic_access_relations_id"
}
]
}
]
},
{
"target": "electronicAccess.uri",
"description": "URI",
"subfield": [
"u"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
},
{
"target": "electronicAccess.linkText",
"description": "Link text",
"subfield": [
"y"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
},
{
"target": "electronicAccess.materialsSpecification",
"description": "Materials Specified",
"subfield": [
"3"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
},
{
"target": "electronicAccess.publicNote",
"description": "URL public note",
"subfield": [
"z"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
}
]
}
],
"866": [
{
"entity": [
{
"target": "holdingsStatements.statement",
"description": "",
"subfield": [
"a"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
},
{
"target": "holdingsStatements.note",
"description": "",
"subfield": [
"z"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
},
{
"target": "holdingsStatements.staffNote",
"description": "",
"subfield": [
"x"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
}
]
}
],
"867": [
{
"entity": [
{
"target": "holdingsStatementsForSupplements.statement",
"description": "",
"subfield": [
"a"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
},
{
"target": "holdingsStatementsForSupplements.note",
"description": "",
"subfield": [
"z"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
},
{
"target": "holdingsStatementsForSupplements.staffNote",
"description": "",
"subfield": [
"x"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
}
]
}
],
"868": [
{
"entity": [
{
"target": "holdingsStatementsForIndexes.statement",
"description": "",
"subfield": [
"a"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
},
{
"target": "holdingsStatementsForIndexes.note",
"description": "",
"subfield": [
"z"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
},
{
"target": "holdingsStatementsForIndexes.staffNote",
"description": "",
"subfield": [
"x"
],
"rules": [
{
"conditions": [
{
"type": "remove_ending_punc, trim"
}
]
}
]
}
]
}
]
}