[OPEN-ILS-DEV] TCN value question related to Keeping bib / auth / MFHD / record identifiers in sync post
Jason Stephenson
jstephenson at mvlc.org
Fri Nov 20 08:46:31 EST 2009
Quoting Alan Rykhus <alan.rykhus at mnsu.edu>:
> Hello,
>
> I've read the 4 posts related to the Dan Scott's post on keeping the 001
> field in sync with the EG record_entry id and it brings up a question
> for me.
I read those posts, also, and was thinking of replying, but saw your
question and thought my reply would fit nicely in your thread.
>
> What exactly is the real purpose of the tcn_source and tcn_value columns
> in the biblio.record_entry table?
My understanding is that the tcn_value column is meant to hold the tcn
value from the MARC 001 field and tcn_source is the id if the record
source from the config.bib_source table. I could be mistaken but
that's what I discerned from reading the code.
>
> I'm working on some conversion scripts and the one thing I am looking at
> changing in the current conversion scripts for loading records is to let
> the system generate the biblio.record_entry.id value and to store the
> previous system's record id in the biblio.record_entry.tcn_value field.
I actually did this in some test loads a year or two ago. The current
import process, at least for 1.4 and later will let you do that, if
you export your MARC records correctly. In our present, commercial ILS
there is an option to move the 001 to 035 on export. Setting this
option puts the current bib id into the 001. This is a fairly common
practice when exporting records for import to other systems or
vendors, as was mentioned in a previous email in the related thread.
>
> The current scripts populate the id and tcn_value with the old system's
> records id. My reasoning for changing this is that I can see bringing in
> records from different systems where these values would collide. An
> additional concern is that you convert some libraries into Evergreen,
> they run on it for a while, then you add additional libraries, bringing
> in new bibs, and again you might have biblio.record_entry.id collisions.
> If I let the system generate the ids, and store the old id in the
> tcn_value, I can use sql to find out the current bib id, which is needed
> to generate asset.copy(actually asset.call_number) entries and their
> related links.
(I should note that in what I describe below, we are not concerned
about bringing in other library's or consortia's records since we are
an already extant consortium and do not foresee any membership
additions.)
I have written my own bib import program in Java because I didn't like
the performance of the import process shipped with Evergreen, plus I
wanted a bit more control over what was being done with our records.
Furthermore, we have a slew of bibs with duplicate TCNs because our
catalogers have been doing copy cataloging in the way that our current
ILS vendor suggested, and our current ILS permits duplicate TCNs from
the same source.--This latter practice is pretty much counter to the
MARC standards.
In our case, we use the existing record's OO1 as the tcn_value.
However, in those cases where a duplicate TCN exists, the program
generates a new tcn using our consortium's 3-letter OCLC code followed
by our current system's bib number padded with zeroes to a length of 8
digits. This value is used as the both the new tcn and replaces the
existing 001 field value. In these cases, the 003 is also added or
modified to contain our 5-letter institution code from the list
available at the Library of Congress.
The above keeps our cataloging practice for the 001 and 003 in line
with the MARC standard and also gets around records that fail to load
because of duplicate TCNs.
This import program also uses our old system's id number as the
biblio.record_entry.id in Evergreen. This makes importing other data,
such as patron bookbags from the OPAC, much easier.
The program also does not use the 901 fields in the way that Mike
Rylander says they are used in the Evergreen import scripts. I have
the old system export the bib id into a 959 subfield a, which my
program strips out of the MARC after reading and storing the value,
but before actually using the MARC data for import. The reason for
using the 959a is that we currently have no records with that field
filled in, while we do have some records that already contain 901
fields with various information in them.
I will now have to look through the Evergreen code more thoroughly to
see if there is any magic purpose for 901s after the import, thought
the last time I looked, I was unable to find any.
So, long story made a bit longer, I also would like to see something
in the database that keeps the 001 and tcn_value in sync. However, if
its a trigger, perhaps it should be disabled during a first import or
a large import, and the import process could be modified to keep the
two fields in sync.
Also, thought it might be interesting for others if I shared some of
what we've been doing on import. It is good to read what others are
doing and to hear some of the reasoning behind the different
approaches people take.
Cheers,
Jason
>
> thanks -- al
> --
> Alan Rykhus
> PALS, A Program of the Minnesota State Colleges and Universities
> (507)389-1975
> alan.rykhus at mnsu.edu
>
>
More information about the Open-ils-dev
mailing list