From da5836c39d383b8e877320f1f77518845ca04e74 Mon Sep 17 00:00:00 2001 From: phasefx Date: Thu, 22 Jan 2009 18:10:22 +0000 Subject: [PATCH] -set_001_003 param to set 001 to record id and 003 to repository code (specified by -repository_code param, defaults to Evergreen). This is to support XC's OAIToolkit. Also show specific errors on failed records. git-svn-id: svn://svn.open-ils.org/ILS/trunk@11911 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/extras/import/marc_add_ids | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/extras/import/marc_add_ids b/Open-ILS/src/extras/import/marc_add_ids index 85d718fa0e..a6aae62d27 100755 --- a/Open-ILS/src/extras/import/marc_add_ids +++ b/Open-ILS/src/extras/import/marc_add_ids @@ -16,9 +16,13 @@ binmode(STDIN, ':utf8'); binmode(STDOUT, ':utf8'); my ($delim, @fields) = (' \| '); +my $set_001_003 = 0; +my $repository_code = 'Evergreen'; GetOptions( 'delimiter=s' => \$delim, 'field=s' => \@fields, + 'set_001_003' => \$set_001_003, + 'repository_code=s' => \$repository_code, ); my %partmap; @@ -58,9 +62,26 @@ while (<>) { $r->delete_field($_) for ($r->field('901')); $r->append_fields( $f ); + if ($set_001_003) { + my $old_001 = $r->field('001'); + if ($old_001) { + $old_001->update($partlist{id}); + } else { + my $new_001 = new MARC::Field('001',$partlist{id}); + $r->insert_fields_ordered($new_001); + } + my $old_003 = $r->field('003'); + if ($old_003) { + $old_003->update($repository_code); + } else { + my $new_003 = new MARC::Field('003',$repository_code); + $r->insert_fields_ordered($new_003); + } + } + print $r->as_xml_record; } otherwise { - warn "failed on record $., $partlist{marc}\n"; + warn "failed on record $., $partlist{marc}, for $@\n"; }; } -- 2.11.0