From b09b51b9b22889e43352380a965213ded9528a83 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 Signed-off-by: Amandine Zocca Signed-off-by: Martin Renvoize --- C4/ImportBatch.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/ImportBatch.pm b/C4/ImportBatch.pm index 8d39ed2034..7e252da83e 100644 --- a/C4/ImportBatch.pm +++ b/C4/ImportBatch.pm @@ -467,7 +467,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.20.1