[Koha-devel] Field 001 auto-increment problem in 3.8.5

Paul paul.a at aandc.org
Sun Nov 11 23:53:55 CET 2012


Our cataloguing frameworks (default, books) for tag 001 have under 
Constraints / Other Options / Plugin a script [callnumber_rev3.pl, one line 
changed from the Koha "standard" callnumber.pl] which includes this snippet:

     # If the textbox is empty, we return a simple incremented 
controlnumber [was callnumber]
     if ( $code eq "" ) {
-        my $sth = $dbh->prepare("SELECT MAX(CAST(itemcallnumber AS 
SIGNED)) FROM items");
+        my $sth = $dbh->prepare("SELECT 
MAX(CAST(EXTRACTVALUE(marcxml,'//controlfield[\@tag=\"001\"]') AS SIGNED)) 
from biblioitems");

         $sth->execute;

         if ( my $max = $sth->fetchrow ) {
             $template->param(
                 return => $max+1,
             );
         }

The need for this change is that marcxml,'//controlfield[\@tag=\"001\"]' 
correctly returns 39029463224 (mysql output below my sig.) LoC, BL, LAC, 
etc all *occasionally* have alpha suffixes - hence the "EXTRACTVALUE".

BUT -- when cataloguing, using the plugin for a blank 001 input, it gets 
stuck on 39029463221 and therefore produces duplicates. I've even tried 
return => $max+5 but no change ... it still produces $max-3. Rebooting, no 
change  ;-{

A numeric sort of the marcxml 001 tags appears normal:
.../
39029463218
39029463219
39029463220
39029463221
39029463222
39029463223
39029463224

I've spent a couple of hours trying to chase this one down and would really 
appreciate help.

Thanks and br -- Paul

mysql> SELECT MAX(CAST(EXTRACTVALUE(marcxml,'//controlfield[@tag="001"]')AS 
SIGNED)) FROM biblioitems;
+------------------------------------------------------------------------+
| MAX(CAST(EXTRACTVALUE(marcxml,'//controlfield[@tag="001"]')AS SIGNED)) |
+------------------------------------------------------------------------+
|                                                            39029463224 |
+------------------------------------------------------------------------+
1 row in set, 307 warnings (0.14 sec) ### These warnings are for $ rather 
than numeric entries



More information about the Koha-devel mailing list