# in future, probably should tie to a real user account
C4::Context->set_userenv(0, 'batch', 0, 'batch', 'batch', 'batch', 'batch', 'batch');
+my $dbh = C4::Context->dbh;
+$dbh->{AutoCommit} = 0;
if ($batch_number =~ /^\d+$/ and $batch_number > 0) {
my $batch = GetImportBatch($batch_number);
die "$0: import batch $batch_number does not exist in database\n" unless defined $batch;
die "$0: import batch $batch_number status is '" . $batch->{'import_status'} . "', and therefore cannot be imported\n"
unless $batch->{'import_status'} eq "staged" or $batch->{'import_status'} eq "reverted";
process_batch($batch_number);
+ $dbh->commit();
} else {
die "$0: please specify a numeric batch ID\n";
}
print "... importing MARC records -- please wait\n";
my ($num_added, $num_updated, $num_items_added, $num_items_errored, $num_ignored) =
- BatchCommitBibRecords($import_batch_id, 100, \&print_progress);
+ BatchCommitBibRecords($import_batch_id, 100, \&print_progress_and_commit);
print "... finished importing MARC records\n";
print <<_SUMMARY_;
_SUMMARY_
}
-sub print_progress {
+sub print_progress_and_commit {
my $recs = shift;
print "... processed $recs records\n";
+ $dbh->commit();
}
sub print_usage {
die "$0: cannot open input file $input_file: $!\n";
}
+my $dbh = C4::Context->dbh;
+$dbh->{AutoCommit} = 0;
process_batch($input_file, $match_bibs, $add_items, $batch_comment);
+$dbh->commit();
exit 0;
print "... staging MARC records -- please wait\n";
my ($batch_id, $num_valid, $num_items, @import_errors) =
BatchStageMarcRecords($marc_flavor, $marc_records, $input_file, $batch_comment, '', $add_items, 0,
- 100, \&print_progress);
+ 100, \&print_progress_and_commit);
print "... finished staging MARC records\n";
my $num_with_matches = 0;
$matcher->add_simple_required_check('245', 'a', -1, 0, '',
'245', 'a', -1, 0, '');
print "... looking for matches with records already in database\n";
- $num_with_matches = BatchFindBibDuplicates($batch_id, $matcher, 10, 100, \&print_progress);
+ $num_with_matches = BatchFindBibDuplicates($batch_id, $matcher, 10, 100, \&print_progress_and_commit);
print "... finished looking for matches\n";
}
print "\n";
}
-sub print_progress {
+sub print_progress_and_commit {
my $recs = shift;
+ $dbh->commit();
print "... processed $recs records\n";
}