From 1622c4849533f5050b68f206ad647f0a5050d3e4 Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Thu, 8 Jun 2017 16:22:55 +0200 Subject: [PATCH] Bug 18757 - Problem when importing only items in MARC records When importing records with Stage MARC records for import, one can use matching rules to only import items into existing records. Those imported items are stored as XML to be staged. The bug is that when MARC Flavour is UNIMARC the XML serialization fails because its is looking in field 100$a which does not exist. You see in logs the error : Unsupported UNIMARC character encoding [] for XML output for UNIMARC; 100$a This patch adds the format "USMARC" to XML serialization, like in C4::Items::_get_unlinked_subfields_xml Test plan : - On a UNIMARC database - Define a maching rule on title 200$a - Select a record with items - Export it using : Save as > MARC (Unicode/UTF-8) - Delete all items - Go to Tools > Stage MARC records for import - Upload exported file - Select title matching rule - Select "Ingore incoming record" in "Action if matching record found :" - Select Yes and "Always add items" in "Check for embedded item record data?" - Click Stage for import => Without patch you get the error => With patch the import is staged - Import into the catalog and check item is well recreated --- C4/ImportBatch.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/ImportBatch.pm b/C4/ImportBatch.pm index 1b598c7..7898d82 100644 --- a/C4/ImportBatch.pm +++ b/C4/ImportBatch.pm @@ -476,7 +476,7 @@ sub AddItemsToImportBiblio { VALUES (?, ?, ?)"); $sth->bind_param(1, $import_record_id); $sth->bind_param(2, 'staged'); - $sth->bind_param(3, $item_marc->as_xml()); + $sth->bind_param(3, $item_marc->as_xml("USMARC")); $sth->execute(); push @import_items_ids, $dbh->{'mysql_insertid'}; $sth->finish(); -- 2.7.4