I am revisiting an old topic here; we still have some inconsistencies in our data.

Previously in this thread: We were getting an error to the likes of: *Can't call method "branchname" on an undefined value at /usr/share/koha/lib/C4/Biblio.pm line 1627*

This was due to some bad data; our holding information had somehow gotten bad library codes.  I was given some SQL to replace holdingbranch and homebranch in the items table.

But, it turns out that the fields are being pulled from the marc data, not the items table.  We still have some bad data stored in the marc fields somewhere.

Luckily for me, I am a sysadmin.  I have all sorts of potentially destructive, but very possible solutions.  My plan is to do a big sql dump of the database, and then use a regular expression to do a database-wide change of that bad data to the good data.  It is a pretty unique code that does not seem to appear anywhere else than "branch" areas.  This bulk change would solve the problem, but it would also change any legacy archives and stuff like that...  The data would be back in sync, but it is somewhat of a shotgun approach...

Anyone have any wisdom for me before I take such a drastic measure?

    - Tim Young


On 6/27/2017 1:46 PM, Tim Young wrote:

Great!  Thanks.  & Thanks for the sql.  Worked fine.

    - Tim


On 6/27/2017 12:55 PM, Tomas Cohen Arazi wrote:
Tim, the authorised_values_branches table is not related.

The problem is that there are fields in your record(s) that are expected to contain a branchcode. And they don't. That's why Koha::Libraries->find() is returning an undefined value (undef in Perl).

When you removed the FK constraint, you did hide the basic problem of inconsistency.

I suggest that you find your only library's branchcode and make sure your items all have homebranch and holdingbranch set to that. Then reindex. You should do it like this:

# Enter to mysql
$ sudo koha-mysql lib
> UPDATE items SET homebranch='LIB', holdingbranch='LIB';
> \q
$ sudo koha-rebuild-zebra -f -a -b -v lib

Note: replace 'lib' for your instance name, and 'LIB' for your library's branchcode.

Regards.


El mar., 27 jun. 2017 a las 13:59, Tim Young (<tim.yo...@lightsys.org <mailto:tim.yo...@lightsys.org>>) escribió:

    Awesome. Thanks.  I may be able to figure it out (I am pretty good at
    poking and prodding, and finally figuring it out).  I believe we only
    have one branch, so I should be able to simply replace everything
    in the
    sql to match the correct branch... (Yikes! Branchcode is used all
    over
    the place!)

    BUT, I am a sysadmin, not a Koha admin.  This looks like it might be
    easier to fix through the web interface... So excuse the dumb
    questions.  :)

    That particular error seems to stem from something be authorized by
    branches.  My "authorised_values_branches" table is empty. Should
    I set
    up an authorized branch or something somewhere?

    We do have a branch configured (I can see it in the branches
    table)...

    The code seems to be looking at
    Koha::Libraries->find($value)->branchname;

    and (I have "value" being undefined, or defined improperly. But I do
    not see a libraries table...)

    But, at the same time:
    $tagslib->{$tag}->{$subfield}->{'authorised_value'} eq
    "branches".  So I
    somewhere seem to be saying to authorize by branch, and I do not have
    any authorized branches (or the authorised_values_branches is
    empty)...

    Is there a simple web area I should check out before I jump into the
    mysql and make changes that might not be supported?

         - Tim


    On 6/27/2017 9:26 AM, Tomas Cohen Arazi wrote:
    > You need to fix your data, so fields linked to branch codes
    actually
    > contain valid branchcodes. The band aid will work, but I think you
    > need to fix your data for good.
    >
    > Koha got stricter regarding the data quality/completeness. This
    > particular case could be saved by some tweak like the one you
    propose.
    > It is maybe worth filling a bug, because the previous behaviour
    worked
    > more gracefuly.
    >

    _______________________________________________
    Koha mailing list http://koha-community.org
    Koha@lists.katipo.co.nz <mailto:Koha@lists.katipo.co.nz>
    https://lists.katipo.co.nz/mailman/listinfo/koha

--
Tomás Cohen Arazi
Theke Solutions (https://theke.io <http://theke.io/>)
✆ +54 9351 3513384
GPG: B2F3C15F


_______________________________________________
Koha mailing list  http://koha-community.org
Koha@lists.katipo.co.nz
https://lists.katipo.co.nz/mailman/listinfo/koha

Reply via email to