Field Mapping profiles: MARC
Looking for EDIFACT fields?
These tips and videos focus on mapping MARC into FOLIO. For EDIFACT field mapping details, see Field Mapping profiles: EDIFACT
Reference videos
Field mapping profile syntax video: https://drive.google.com/file/d/1kFh6Lo8N-Ko8Fpq8OPDZqiutAXUW2WoU/view
Field mapping profile syntax for repeatable fields video: https://drive.google.com/file/d/1eJadAePoD1CN7IweYAZ1ht1rsD1iabCI/view
Required fields when creating records
The field mapping profile screen does not indicate which fields are required in various record types. If a field mapping profile is being used to update a record, the updates may not apply to required fields, so we have opted not to indicate them. If a field mapping profile is used to create a new Inventory record, ensure these required fields are mapped, either with values from the incoming records or defaults.
- Instance records (Note: these fields will be mapped automatically from the MARC Bibliographic record, based on in the library's default MARC-to-Instance map)
- Resource title
- Resource type
- Holdings records
- Permanent location
- Item records
- Permanent loan type
- Material type
- Status (Note: Not all item statuses can be created or updated via Data Import. This is controlled partly by which statuses appear in the dropdown list in the field mapping profile, and partly by logic that is invoked when Data import is updating an item record.)
How to map static/default data or data from a drop-down list into a FOLIO field.
To map static, or default, data into a FOLIO field, wrap the data in quotation marks.
For example, to create a holding that doesn't yet have a call number, you could enter "Needs call number" into the call number field of a mapping profile.
To map data from one of the drop down lists into a FOLIO field, just select the item from the drop list and the appropriate text will be copied into the field for you. When you do that, you'll notice that FOLIO puts quotation marks around the data from the drop-down list.
Mapping data from a MARC field into a FOLIO field
To map data from a MARC field into a FOLIO field use the syntax: field$subfield. For instance, enter 856$u
into the Electronic Access URI field of a FOLIO holdings mapping profile.
You can insert a space between MARC data being mapped into a field. You could enter 090$a “ “ 090$b
into the call number field of the mapping profile to put a space between the values in the 090$a and 090$b. You must include a space between the subfields and the quotation marks.
Removing existing values from records with data import
To remove an existing value from the records you are acting on, enter ###REMOVE###
into the field. For instance, to remove a temporary location, enter ###REMOVE###
into the temporary location field in your mapping profile.
Mapping a repeatable field
- For repeatable fields, the user must select one of four options for how the field mapping data will act during the import:
- Add these to existing: When creating a record, all mapped values will be added to the field. When updating a record, all existing values will be retained, and all newly-mapped values will be added.
- Delete all existing values: When creating a record, this action has no effect. When updating a record, all existing values will be removed, and none will be added.
- Delete all existing values and add these: When creating a record, all newly-mapped values will be added. When updating a record, all existing values will be deleted, and then all newly-mapped values will be added. If there are no new values on the incoming record, any values in the existing record will be retained.
- Find and remove these: When creating a record, this action has no effect. When updating a record, if the mapped value exists, it will be removed from the field. No new values will be added.
Validation in MARC field mapping profiles
Inventory field mapping profiles that are used for importing MARC files have validation to ensure that the entered data is an accurate MARC field, a valid default value in quotation marks (if the field is validated), a free-text default value in quotation marks (if the field is not validated), a special mapping value, or a combination of the above. If a user enters invalid values or syntax, they will see a message such as Non-MARC value must use quotation marks or Please correct the syntax to continue. The user will be unable to save the field mapping profile until the error is corrected.
Type of data | Valid mapping syntax example | Meaning | Notes |
---|---|---|---|
MARC control fields, without subfields (LDR, 001, 003, 005, 006, 007, 008) | 007 | Include all data from the 007 | |
MARC control fields, without subfields (LDR, 001, 003, 005, 006, 007, 008) | LDR/5 | Include byte 5 from the Leader field (note that the first byte of MARC control fields is 0, not 1. Thus, LDR/5 is actually the 6th position in the Leader string | The slash indicates that the next value is a byte or a range of bytes. If no hyphen, then it is a single byte |
MARC control fields, without subfields (LDR, 001, 003, 005, 006, 007, 008) | 008/14 | Include byte 14 from the 008 control field (which is position 15 in the string) | The slash indicates that the next value is a byte or a range of bytes. If no hyphen, then it is a single byte |
MARC control fields, without subfields (LDR, 001, 003, 005, 006, 007, 008) | 007/4-6 | Include bytes 4-6 (which are positions 5-7 in the string) | The / (slash) indicates that the next value is a byte or a range of bytes. If there is a hyphen, that indicates a string of bytes, starting with the first position and ending with the last indicated position |
MARC variable fields (010-999), with all subfields | 300 | If the mapping is a 3-digit MARC field number without any subfields, data from all the subfields in the field are included in the Inventory record field, in the same order as shown in the MARC field. | There is no space or indication between each subfield's data in the Inventory record field. This is not a common mapping. |
MARC variable fields (010-999), with specific subfields | 980$a | Data from the specified subfield in the specified field is included in the Inventory record field. | The $ (dollar sign) indicates that the next value is a subfield letter or number. A single alphanumeric character must follow the dollar sign. If there no character or multiple characters following the dollar sign, a validation error message displays. |
MARC variable fields (010-999), with specific subfields | 300$a 300$c | Data from each specified subfield in the specified field(s) is included in the Inventory record field | A space must separate each field$subfield pair from any other in the mapping profile. The $ (dollar sign) indicates that the next value is a subfield letter or number. A single alphanumeric character must follow the dollar sign. If there no character or multiple characters following the dollar sign, a validation error message displays. The subfields do not have to be from the same field. There is no space or indication between each subfield's data in the Inventory record field. This is not a common mapping. |
MARC variable fields (010-999), with specific subfields, separated by specified punctuation | 050$a " " 050$b | Data from each specified subfield in the specified field(s) is included in the Inventory record field. The data from the subfields is separated by a space. | Without the " " indication, the data from 050$a and 050$b will be entered into the Inventory record field without a space between the subfields' data. The " " (a space surrounded by quotation marks) indicates that a space should be included between the data from the subfields |
Default text (field does not have validation reference values) | "Purchased with gift funds" | Default data that is not retrieved from the incoming MARC record. | The exact default data (without quotation marks) will be placed in the specified Inventory record field for every record that is created or updated by the data import job. If there is a beginning quotation mark or ending quotation mark without its counterpart, a validation error message displays. |
MARC fields and default text | 090$a " " 090$b; else 050$a " " 050$b | The mapping presents a 2-value cascade of options for retrieving the data from the MARC record. If there are values in 090$a and 090$b, include those values in the Inventory record field. If not, then check the 050$a and 050$b field for data. And if no data in 050$a and 050$b, then leave the field blank | ; else (semicolon (space) else) indicates the following value is a fallback value, which is only inspected or included in the Inventory record field if there is no available value in the preceding field |
MARC fields and default text | 090$a " " 090$b; else 050$a " " 050$b; else "NEEDS CALL NUMBER" | The mapping presents a 3-value cascade of options for retrieving the data from the MARC record. If there are values in 090$a and 090$b, include those values in the Inventory record field. If not, then check the 050$a and 050$b field for data. And if no data in 050$a and 050$b, then insert default data of NEEDS CALL NUMBER. | ; else (semicolon (space) else) indicates the following value is a fallback value, which is only inspected or included in the Inventory record field if there is no available value in the preceding field. If a fallback value is a default value (in quotation marks) rather than a MARC field, the default must be the last value in the cascade. |
(empty the field) | ###REMOVE### | Empty whatever value was previously in the specified Inventory record field | This would only be applicable in a field mapping profile used for updates. |
Today's date | ###TODAY### | Assign today's date in the Inventory record field | This is only applicable to "date picker fields" such as Cataloged date |
A specific date | "2021-06-07" | Assign this exact date in the Inventory record field | This is only applicable to "date picker fields" such as Cataloged date. This mapping is not commonly used. Note that the data must be entered in the default FOLIO format of "YYYY-MM-DD" no matter what the library's localized date format is. |
A field with a validation (or dropdown or reference value) list | 952$a "ONLINE (E)" | If the Inventory record field can only contain specific values, such as Permanent location or Item status, the data retrieved from the specified MARC field and subfield or entered as default text must match one of the specific values exactly, in spelling, case, and punctuation. | The only exception is Location data retrieved from a MARC field, which can be the Location name, Location code, or Location name (code). If the value is selected from the field's dropdown list in the field mapping profile, it will be populated into the mapping field with the proper punctuation and value details. If a default value is typed into the mapping field and does not match a valid value from the dropdown list, an error message displays. |
Restrictions on Item Statuses when Creating Item Records
In the Data Import Field mapping profile for Inventory Item records, some item statuses are restricted, and cannot be assigned.
The following statuses can be assigned via Data Import, when the Item action is Create:
- Available
- In process
- In process (non-requestable)
- In transit
- Intellectual item
- Long missing
- Missing
- On order
- Order closed
- Restricted
- Unavailable
- Unknown
- Withdrawn
The following statuses cannot be assigned via Data Import:
- Aged to lost
- Awaiting delivery
- Awaiting pickup
- Checked out
- Claimed returned
- Declared lost
- Paged
When the item action is Update, if the existing Item record has any of the following statuses, the status will not be updated via Data Import. Any other fields in the item record will be updated, but the status field will be skipped, and an error returned to the Data Import log.
- Aged to lost
- Awaiting delivery
- Awaiting pickup
- Checked out
- Claimed returned
- Declared lost
- Paged
This is an example of what the error looks like: