wrapping AddBiblio(), and AddItem() in evals{} to protect import from failure due...
authorMason James <mtj@liblime.com>
Sun, 11 Nov 2007 23:58:33 +0000 (17:58 -0600)
committerJoshua Ferraro <jmf@liblime.com>
Mon, 12 Nov 2007 00:44:13 +0000 (18:44 -0600)
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
misc/migration_tools/bulkmarcimport.pl

index b13dde8..cc186cb 100755 (executable)
@@ -294,15 +294,25 @@ while ( my $record = $batch->next() ) {
     }
     print "$i : $nbitems items found\n" if $verbose;
     # now, create biblio and items with Addbiblio call.
+
     unless ($test_parameter) {
-        my ($bibid,$oldbibitemnum) = AddBiblio($newRecord,'');
-        warn "ADDED biblio NB $bibid in DB\n" if $verbose;
-        for (my $i=0;$i<=$#items;$i++) {
-#             warn "here is the biblioitemnumber $oldbibitemnum";
-            AddItem($items[$i],$bibid,$oldbibitemnum);
-        }
-    }
+        my ( $bibid, $oldbibitemnum );
+        eval { ( $bibid, $oldbibitemnum ) = AddBiblio( $newRecord, '' ); };
+        warn $@ if $@;
+        if ( $@ ) { 
+            warn "ERROR: Adding biblio $bibid failed\n" if $verbose
+        } else {
+            warn "ADDED biblio NB $bibid in DB\n" if $verbose;
+            for ( my $it = 0 ; $it <= $#items ; $it++ ) {
+                eval { AddItem( $items[$it], $bibid, $oldbibitemnum ); };
+                warn "ERROR: Adding item $it, rec $i failed\n" if ($@);
+            }       
+        }       
+    }      
+    last if $i == $number;
 }
+
+
 if ($fk_off) {
        $dbh->do("SET FOREIGN_KEY_CHECKS = 1");
 }