From: dbs Date: Thu, 7 Aug 2008 15:08:26 +0000 (+0000) Subject: Add a --required_field option to enable skipping records that don't contain a require... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=1e54521f7ba19fe601f32d0d47d5639478b3373c;p=Evergreen.git 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 --- 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++;