Hi All - we want to change the 856 field in over 18,000 records. The actual change itself is easy - simply URL encoding the existing URL, and then prefixing it with another value. I am thinking of scripting this job.
1. Identity and retrieve the biblio IDs from a SQL query 2. Iterate over the IDs and use C4::Biblio:: GetMarcBiblio to retrieve the MARC record 3. Grab the 856, subfield u value and make the change 4. Use C4::Biblio:: ModBiblio to update the record in Koha The actual relevant code would look something like (this is inside a loop which is iterating over the array of BIB IDs): my $marc_record = GetMarcBiblio($id); if ($marc_record) { my $url = $marc_record->field('856')->subfield('u'); my $field_856 = $marc_record->field('856'); my $encodedURL = &encodeURL($url); my $wURL = $eblPrefix . $encodedURL; $field_856->update( u => $wURL); my $updated = ModBiblio($marc_record,$id,''); } I've test this on 10 records and it seems to work OK. My main question is, are there any "gotchas" doing it this way - anything I need to look out for/anything I've missed? I'm not explicitly indicating any encoding format - I'm assuming that what goes back into Koha , will be the same as what I took out (apart from the URL) - with all the encoding the same. Is that assumption correct? Is it OK to make this change to 18K in one go? Before I run the script I'm make a dump of the biblioitems table (which I think is the only table effected by this update), and the script dumps out the BIB IDs and the MARC records to file for reference. How does this sound/look? Cheers, Stephen Stephen Graham Library Technology Consultant Academic Resources Library and Computing Services University of Hertfordshire Hatfield AL10 9AB UK Tel. 01707 286111 Ext: 77751 Email s.grah...@herts.ac.uk _______________________________________________ Koha mailing list http://koha-community.org Koha@lists.katipo.co.nz https://lists.katipo.co.nz/mailman/listinfo/koha