Prevent null 852 $a in marc_export
authorDan Scott <dscott@laurentian.ca>
Wed, 30 Nov 2011 04:09:47 +0000 (23:09 -0500)
committerMike Rylander <mrylander@gmail.com>
Tue, 10 Jan 2012 16:32:25 +0000 (11:32 -0500)
852 $a is supposed to correspond to the institution holding the item
from which access is given, according to the MARC Format for Holdings
Data specification. As the org unit shortnames typically don't
correspond to one of the MARC Code List for Organization entries, we've
assumed that users will define the --location parameter; however, if
that parameter isn't defined, the empty string is used and an empty
subfield is generated. This, in turn, makes other MARC-parsing tools
unhappy. So, only generate an 852 $a if we have an actual value for the
--location parameter.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/support-scripts/marc_export.in

index c0ba796..588f8dd 100755 (executable)
@@ -400,10 +400,8 @@ sub add_bib_holdings {
                 for my $cp ( @$cn_map_list ) {
                     $count{cp}++;
                             
-                    $r->append_fields(
-                        MARC::Field->new(
-                            852, '4', '', 
-                            a => $location,
+                    $r->insert_grouped_field( MARC::Field->new( '852', '4', ' ',
+                            ($location ? ( 'a' => $location ) : ()),
                             b => $orgs{$cn->owning_lib}->shortname,
                             b => $orgs{$cp->circ_lib}->shortname,
                             c => $shelves{$cp->location}->name,