I've been working on automating the delivery of electronic documents to our patrons; most of the work over the summer was spent in ensuring that we had our legal and policy bases covered. I read through the documentation for Ariel, our chosen ILL software, to ensure that everything we wanted to do was technically feasible, and after backing up our ILL workstation in case of disaster, I finally set out last week to finish the job. For those not ensconced in the library software world, ILL software is the equivalent of a fax machine, with the additional feature of the automated destruction of documents to ensure that you're respecting copyright.
What a mess.
Ariel licenses come in two forms:
- the full license, which enables you to send documents to other libraries, and to receive documents from other libraries
- the receive-only license, which only enables you to receive documents from other libraries
We have one of each license set up on two different workstations so that we can split the sending / receiving workloads across different machines. So, after sitting down at the receive-only workstation, which is the one that has its IP address advertised throughout the world as our receiving address, I discovered that only the full license of Ariel can be set up to automatically email received documents to the requesting patrons. Okay, that restriction wasn't mentioned in the documentation I read, but maybe it was a matter of interpretation. Fine. After getting no answer from the sales department about the possibility of upgrading to a second full license, or purchasing another full license outright, I assume that Infotrieve has moved into a zen place where it doesn't need to make sales or respond to customer inquiries. Wait a couple of days while the right ports in the firewall are opened up, switch IP addresses between the full and receive-only machines, and move on. Well... sort of.
For reasons that are lost in the haze of many hours desperately trying to get the full license machine functional again, to access the networked printer to which received documents are currently automatically printed, I had to raise the privileges of the user running Ariel from plain user (which can do very little harm) to administrator. I'm sure there's a Windows policy I could change somewhere on the machine to avoid this nasty move, but after three hours of downtime sometimes you just go with what works, no matter how stupid the solution is. So that was semi-defeat number one. But Windows had nothing on the trickery that lay in wait for me with Ariel.
To make electronic delivery to your patrons work, you have to have an address book of your patrons. As a member of a provincial consortium, we have a central registry of the users of our ILL services, and we were able to get a dump of our patron data in Excel form relatively easily. Great! Ariel imports data from Excel or CSV, so it should be a snap. Should be.
But no. Ariel's documentation of the 8 different fields that are required in your CSV document would be great, if it was correct. Like, say, telling me that there are actually 10 required fields. Or, say, telling me the correct order for those fields. Apparently Infotrieve gets its threes and fours mixed up. Whoopsie. Oh, and by the way, this is 2007, but our importer only understands ASCII characters, so all of your patrons with accents in their name suffer mangled names (sorry, Josée and Geneviève!). This, despite the GUI interface enabling you to directly type the proper accented characters.
Mmmm, and about that patron list interface... it takes 3 clicks or keystrokes to delete each patron. There is no bulk delete operation available. Ye olde CTRL-click or SHIFT-click for selecting great swathes of records to delete at once? No dice. So I actually sat there and deleted about 300 records, representing about 900 repetitive motions, before feeling my wrist throb warningly and my brain revolt. I know Ariel runs against an embedded SQL Server database, so I found my revenge about 45 minutes later: Eclipse + the SQLExplorer plug-in + the Microsoft JDBC Driver for SQL Server = one good way of issuing "DELETE FROM tblPatronList;" and watching the records that were loaded under false pretenses (see documentation of swapped fields, above) simply melt away. I think I issued the DELETE statement a couple of extra times, it felt so damned good.
As for the corrupted accented characters: I'm going in for round 3 tomorrow, and I'll take a stab at loading the table directly via the JDBC interface. Bypassing brain-dead software seems like the right direction to take this project. That being said, if you're one of our patrons and your name doesn't contain any accents - you just might have mail when your document arrives!