Bug 20811: (QA follow-up) Prevent calling AddItemBatchFromMarc and ModBiblioMarc...
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Fri, 20 Jul 2018 09:46:58 +0000 (11:46 +0200)
committerFridolin Somers <fridolin.somers@biblibre.com>
Mon, 24 Sep 2018 13:04:17 +0000 (15:04 +0200)
If you use -update but do not find matches (or did not want to match), you
should not call those routines. We should warn and skip this record.

Adding a warn at the start that the choice of options may not be smart.
Note that this needs further attention somewhere else. You could mix
-update with -insert for instance and still see some problems. (May depend
on items with unique barcode etc.)

Test plan:
Run -update without match or isbn.
Or run -update -isbn with a non-matching ISBN.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit 15b865c6ee558ef278f911ba3693c38c024c7f11)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 8191625667162ac240a5d0e4d180632bcf100884)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit c71253eb2ed3824cbc6c7d3972319712d3d5bf03)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

misc/migration_tools/bulkmarcimport.pl

index 5b4d6ca..6231df3 100755 (executable)
@@ -95,6 +95,9 @@ if ($version || ($input_marc_file eq '')) {
     pod2usage( -verbose => 2 );
     exit;
 }
+if( $update && ( !$match || $isbn_check ) ) {
+    warn "Using -update without -match or -isbn seems to be useless.\n";
+}
 
 if(defined $localcust) { #local customize module
     if(!-e $localcust) {
@@ -441,7 +444,9 @@ RECORD: while (  ) {
                         printlog( { id => $id || $originalid || $biblionumber, op => "insert", status => "ok" } ) if ($logfile);
                     }
                 } else {
+                    warn "WARNING: Updating record ".($id||$originalid)." failed";
                     printlog( { id => $id || $originalid || $biblionumber, op => "update", status => "warning : not in database" } ) if ($logfile);
+                    next RECORD;
                 }
             }
             eval { ( $itemnumbers_ref, $errors_ref ) = AddItemBatchFromMarc( $record, $biblionumber, $biblioitemnumber, '' ); };