| Summary: | updating biblio return undefined error if linked authority does not exist in db | ||
|---|---|---|---|
| Product: | Koha | Reporter: | jb <siewyee2> |
| Component: | MARC Authority data support | Assignee: | Galen Charlton <gmcharlt> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | major | ||
| Priority: | P5 - low | CC: | jonathan.druart, matted-34813 |
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | All | ||
| GIT URL: | Initiative type: | --- | |
| Sponsorship status: | --- | Crowdfunding goal: | 0 |
| Patch complexity: | --- | Documentation contact: | |
| Documentation submission: | Text to go in the release notes: | ||
| Version(s) released in: | Circulation function: | ||
*** Bug 9110 has been marked as a duplicate of this bug. *** Looking at the code, this is still valid. 1. link an authority to biblio 2. manually delete authority from db 3. update the biblio from staff client => No crash Closing, please reopen with updated steps to recreate the problem if still valid. |
descrption of problem: updating biblio return undefined error if previouly linked authority does not exist in db steps to recreate: 1. link an authority to biblio 2. manually delete authority from db 3. either a. run link_bibs_to_authorities.pl or b. update the biblio from staff client 4. will return undefined error for field we wanted to clear all linked authorities subfield $9 from biblios. run into this error. fixed the code, but dont really know if it is the best approach. attaching code fix for reference. ######################################################################### AuthoritiesMarc.pm line 1194 added one line: return unless defined($record); } else { #fix undefined error if authorized heading does not exist in db return unless defined($record); # foreach my $field ($record->field('1..')) { ########################################################################## Biblio.pm line 669 added one line: return unless defined($authorized_heading); my $authorized_heading = C4::AuthoritiesMarc::GetAuthorizedHeading( { 'authid' => $authid } ); #fix undefined error if authorized heading does not exist in db return unless defined($authorized_heading); # return ($field->as_string('abcdefghijklmnopqrstuvwxyz') eq $authorized_heading);