Data import: fails the creation of a Holding through a match on the 999 ff field
Description
CSP Request Details
CSP Rejection Details
Potential Workaround
Attachments
Checklist
hideTestRail: Results
Activity
Ann-Marie Breaux September 23, 2022 at 5:27 AM
Hi Data Import was broken on MG BF for a couple of days, but it's working again now. Tested this and it works as expected. Closing this issue.
Ivan Kryzhanovskyi September 21, 2022 at 8:41 PM
Hi , looks like this ticket already been deployed to the bugfest env. Could you please doublecheck it and close if everything works as expected?
Maksym Ishchenko September 19, 2022 at 3:04 PM
Hello !
Verified on folio-snapshot, no 999 errors appears. Screencast:
https://issues.folio.org/secure/attachment/52534/2022-09-19_18h00_14.mp4
Ann-Marie Breaux September 15, 2022 at 12:39 PM
Reminder for myself: discussed with SMEs at DI Subgroup yesterday. In theory, a workaround could be to adjust job profiles to change the match being used in profiles that update Holdings. However, lots of libraries already have job profiles with matches between 999ff $i and Instance UUID, so this is a regression that will affect existing profiles. SMEs agreed that it should be MG BF, so long as not high risk
Ann-Marie Breaux September 15, 2022 at 12:26 PM
Thanks, I'm moving it to Morning Glory Bugfix, and will ask to figure out whether we can start working on it immediately. We will need to have the fix done and deployed to MG BF by middle of next week.
Precondition:
User is logged onto Bugfest with at least the following permissions:
• Data import: Can upload files, import, and view logs
• Settings (Data import): Can view, create, edit, and remove
• Inventory: All permissions
• Inventory: View, create, edit instances
• UI: Data export module is enabled
The user has downloaded the attached file
Steps to Reproduce:
Go to the "Data import" app-> Click on the "or select files" button > Select the "1 record.mrc" file> click on the "Open" button
Select the "Default - Create instance and SRS MARC Bib" job profile-> Click on the "Actions" button-> Select "Run" -> Click on the "Run" button at displayed modal
After the import is completed, click on the file name at the top of the log list
Click on the "Created" hotlink in the instance column
Copy the Instance HRID
In the 1st panel select the search option "Instance HRID"-> start searching for the copied HRID from #5 step.
In the Search results (2nd) pane, mark the checkbox next to the one result. Then click on the 'Action' button in the results pane and select 'Export instances (MARC)'
Go to Data Export app and Click on the most recent quick-export hotlink at the top of the export log, that was finished by your user in the "Run by" column
Using a MARC editor or similar software, open the MARC file (from step #8) to verify that the record contains the 999 ff $i $s field.
Go to Settings application-> Data import/Field mapping profiles-> Actions-> New field mapping profile.
Create a new "Field Mapping Profile" with:
Name: Create simple holdings (or any unique valid name)
Incoming record type: MARC Bib
FOLIO record type: Holdings
Statistical codes:
Add these to existing
Select one from the dropdown list that is probably not being used in other records
Permanent location: Select a value from the dropdown list
Save the profile
11. Create a new "Field Mapping Profile" with:
Name: Create simple items (or any unique valid name)
Incoming record type: MARC Bib
FOLIO record type: Item
Material type: Select one from dropdown list
Statistical codes:
Add these to existing
Select one from the dropdown list that is probably not being used in other records
Permanent loan type: Select one from the dropdown list
Status: Select "Available" from the dropdown list
Save the profile
12. Go to the "Action profiles" section/Actions/New action profile
Create a new "Action Profile" with:
Name: Create simple holdings (or any unique valid name)
Action: Create (all record types)
FOLIO record type: Holdings
Link the "Create simple holdings" mapping profile (from the #10 step)
Save the profile
13. Create a new "Action Profile" with:
Name: Create simple items (or any unique valid name)
Action: Create (all record types)
FOLIO record type: Item
Link the "create simple items" mapping profile (from the #11 step)
Save the profile
14. Go to the "Match profiles" section-> Actions-> New action profile
Create a new "Match Profile" with:
Title: Match 999 ff $i to Instance UUID (or any unique valid name)
Incoming records: MARC Bibliographic
Existing records: Instance
MARC value in incoming record:
Field: 999
Ind 1: f
Ind 2,: f
Subfield: i
Match criterion: Exactly matches
Existing item record field: Admin data: Instance UUID
Save the profile
15. Create a new "Job profile" with
Name: Create holdings and items by matching the 999 ff field. (or any unique valid name)
Accepted data type = MARC
Overview:
Click + and add Match profile: Match 999 ff $i to Instance UUID (from the #14 step)
For matches, click + and add Action profile: Create simple holdings (from the #12 step)
For matches, click + and add Action profile: Create simple items (from the #13 step)
Save the profile
16. Go to the "Data import" app-> Click on the "or select files" button > Select the MARC file from #8 step> click on the "Open" button
17. Select the "Create holdings and items by matching the 999 ff field" job profile-> Click on the "Actions" button-> Select "Run" -> Click on the "Run" button at the displayed modal.
18. Click on the file name that has been imported from step #17.
Expected Results: Holding and Item created after import with the match on 999 ff field.
Actual Results:
Holding and Item is not created
Page with JSON code contains the error: "A new MARC-Holding was not created because the incoming record already contained a 999ff$s or 999ff$i field"
NOTE: During import, the action profile to create "MARC Holdings" is not used, but only the action profile to create the "Holding" is used, so the error should not occur. "Holdings" and "MARC Holdings" mapping profiles differ in the following features:
"MARC Holdings" mapping profile:
Incoming record type: *MARC Holdings
*FOLIO record type: Holdings
"Holdings" mapping profile:
Incoming record type: *MARC Bibliographic
*FOLIO record type: Holdings