Tech Blog

Enhance and fix faults with Aleph SDI


This script aims to fix various faults with the Aleph SDI mechanism, and to enhance the service by the inclusion of item-less e-books in the SDI alerts.

Author: Matthew Phillips

Additional author(s):

Institution: University of Dundee

Year: 2009

License: GNU Public General License

Link to terms: Detailed license terms

Skill required for using this code:



Programming language

Software requirements
Depends on the Perl Encode, DBI and DBD::Oracle modules, all of which are installed with Aleph.

Download files in tar.gz archive


Installation instructions
Download the tar.gz file as above and unpack on your server. General installation instructions can then
be found in a ReadMe file in the archive.

mkdir custom29
cd custom29

(... rename the downloaded file to service.tar.gz ...)

gunzip -c service.tar.gz | tar -xvf -



You can then inspect the scripts and ReadMe file

A service from dialogue XML file, to be placed in $alephe_root/pc_b_eng is included in the archive, so the service can be installed to run from the GUI. However, the normal way to use it would be to run it from the job_list immediately before the p_sdi_01 service.

Summary of Method

Faults in Aleph may result in books being reported as new by SDI when they have actually belonged to
the library for a long while. This mainly happens when an item is the only copy in a particular sub-library and is then updated in some way. This can trigger the creation of a Z324 record to mark the BIB as new.

The script deletes the Z324 records if:

  1.     there is an item with z30_open_date == zero
    (this is often the case with items transferred
    from a previous system).
  2.     there is an item with a non-zero arrival date
    which is more than a year ago.
  3.     there is an item whose open date is more than
    a year ago, whose arrival date is zero, and whose
    process status is null.
  4.     there is an item in any of the collections
    listed in the parameter section below. This
    allows us to cope with retrospective cataloguing

The Z324 will be deleted if “old” items are found as in (1-4) above, providing one of the following applies:

i) the enumeration in the old items and the Z324 matches exactly;
ii) the enumeration in the Z324 is null;
iii) the enumeration in the Z324 is not null but all items at the location are old.

To identify e-books, the system looks for new BIB records which have no item records and which contain an 856 field of the appropriate type. That is, with first indicator blank or 4 and with either:

a) second indicator equal to 0
b) second indicator equal to 1 and not containing a $$3 subfield.

Background work
Please see the attachments for detailed background work testing the SDI mechanism which has formed the basis of the reports we have made to Ex Libris on these faults.

SDI2.doc (application/octet-stream)


Leave a Reply