From 42dec0b81e7a7fc74a01ebc32335659d427a381d Mon Sep 17 00:00:00 2001 From: David Gustafsson Date: Fri, 5 Nov 2021 15:05:26 +0100 Subject: [PATCH] Bug 29654 - Add match_record_id option to bulkmarimport.pl Add -match_record_id option to bulkmarkimport.pl. When enabled incoming record id will be assumed to match record in Koha. To test: 1) Before applying patch, export a biblio from staff interace 2) Import using the exported file: ./bulkmarcimport.pl -m="MARCXML" -v -b -file bib-xxxxx.marcxml -insert -update -c=MARC21 -l "/tmp/import.log" 3) The import with be inserted and create a duplicate record in Koha. Check the import.log or search using the staff interface. (could also crash with duplicate key error if contains item) 4) Apply patch 5) Run the import again with the same command as above 6) A new record should been inserted 7) Remove all newly inserted duplicate records (it's important to keep the record the export was initially performed on) 6) Run the import again, but add the -match_record_id option 8) The original Koha record should now have been updated --- misc/migration_tools/bulkmarcimport.pl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/misc/migration_tools/bulkmarcimport.pl b/misc/migration_tools/bulkmarcimport.pl index a3be3bf5f8..9a43a412b5 100755 --- a/misc/migration_tools/bulkmarcimport.pl +++ b/misc/migration_tools/bulkmarcimport.pl @@ -57,6 +57,7 @@ my $biblios; my $authorities; my $keepids; my $match; +my $match_record_id; my $isbn_check; my $logfile; my $insert; @@ -100,6 +101,7 @@ GetOptions( 'update' => \$update, 'all' => \$all, 'match=s@' => \$match, + 'match_record_id' => \$match_record_id, 'i|isbn' => \$isbn_check, 'x:s' => \$sourcetag, 'y:s' => \$sourcesubfield, @@ -423,6 +425,10 @@ RECORD: foreach my $record (@{$marc_records}) { } } + if ($match_record_id && !$matched_record_id && $originalid) { + $matched_record_id = $originalid; + } + foreach my $stringfilter (@$filters) { if (length($stringfilter) == 3) { foreach my $field ($record->field($stringfilter)) { @@ -900,6 +906,11 @@ from LOC or BNF. useless for biblios probably) I matchindex,fieldtomatch matchpoint to use to deduplicate fieldtomatch can be either 001 to 999 or field and list of subfields as such 100abcde +=item B<-match_record_id> + +Assume incoming record original id will match record in Koha. For example useful when importing +previously exported records. + =item B<-i,-isbn> If set, a search will be done on isbn, and, if the same isbn is found, the -- 2.20.1