From 1e54521f7ba19fe601f32d0d47d5639478b3373c Mon Sep 17 00:00:00 2001 From: dbs Date: Thu, 7 Aug 2008 15:08:26 +0000 Subject: [PATCH] Add a --required_field option to enable skipping records that don't contain a required field git-svn-id: svn://svn.open-ils.org/ILS/trunk@10300 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/extras/import/marc2bre.pl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/extras/import/marc2bre.pl b/Open-ILS/src/extras/import/marc2bre.pl index 4187d6b51d..6230373602 100755 --- a/Open-ILS/src/extras/import/marc2bre.pl +++ b/Open-ILS/src/extras/import/marc2bre.pl @@ -22,7 +22,7 @@ use DBI; #MARC::Charset->ignore_errors(1); -my ($id_field, $id_subfield, $recid, $user, $config, $idlfile, $marctype, $keyfile, $dontuse_file, $enc, $force_enc, @files, @trash_fields, $quiet) = +my ($id_field, $id_subfield, $recid, $user, $config, $idlfile, $marctype, $keyfile, $dontuse_file, $enc, $force_enc, @files, @trash_fields, @req_fields, $quiet) = ('', 'a', 0, 1, '/openils/conf/opensrf_core.xml', '/openils/conf/fm_IDL.xml', 'USMARC'); my ($db_driver,$db_host,$db_name,$db_user,$db_pw) = @@ -39,6 +39,7 @@ GetOptions( 'keyfile=s' => \$keyfile, 'config=s' => \$config, 'file=s' => \@files, + 'required_field=s' => \@req_fields, 'trash=s' => \@trash_fields, 'xml_idl=s' => \$idlfile, 'dontuse=s' => \$dontuse_file, @@ -130,8 +131,13 @@ my %used_ids; my $starttime = time; my $rec; my $count = 0; -while ( try { $rec = $batch->next } otherwise { $rec = -1 } ) { +PROCESS: while ( try { $rec = $batch->next } otherwise { $rec = -1 } ) { next if ($rec == -1); + + # Skip records that don't contain a required field (like '245', for example) + foreach my $req_field(@req_fields) { + next PROCESS if !$rec->field("$req_field"); + } my $id; $recid++; -- 2.11.0