Wednesday, August 24, 2011

Holds List

I received the following request a while back:

Could I get your help, at your convenience, with creating a template for available holds by date that have not been picked up yet?

The information I need is
1. Pickup library
2. Title, author and barcode of available hold
3. Date received here
4. Patron barcode and first and last names

...

I want to be able to retrieve this report weekly for items still here that exceed the 7 days. We hold them here and use that list, arranged in excel alphabetically by patron last name, to remove the items from the hold shelf. Right now we use the Browse holds shelf tab and put them in order by timestamp but of course there is no way to arrange that batch of items alphabetically.

Fortunately, coming up with a holds shelf list that can be sorted by multiple fields is easy to do.  Painfully easy. But before I spill that lil' secret, let me first share my story on how I created this report.

I started constructing a report template using the "Hold Transit" source list, but I soon remembered that this would only include items on the holds shelf that have been transited to our library. It would not include holds on items already in the library. Try again.

I began afresh using the "Hold Request" item source. At first, I thought this report would be so easy to construct. (Oh, foolish me!) Thankfully, adding the display fields was pretty straightforward.  All I needed to do next was add filters that limited by:

- Pickup Library
- Available Date
- Item's Copy Status = "On Holds Shelf"

Not so simple. I soon realized that the "Holds Request" source list does not provide an "Available Date" field. It does have a "Shelf Time" field, but I was not familiar with that field (and thus skeptical of it - more on that later.) I decided to filter by "Last Edit Date/Time," based on the assumption that the last time an item is edited should be when it is checked in and placed on the holds shelf.

I ran the report.  Knowing that I rarely create a report right the first time, I was ready for a li'l weirdness, and weirdness I got. Sure I got some "good results," but they were followed by a long, long list of "bad results."

And these were clearly "bad results." They only displayed patron data, with no item data at all. Just blank fields. I had no idea why Evergreen was providing me a list of patron names, when I was specifically filtering for items. (I later learned that some of these were lingering hold requests that need cleaning up.)

When I tried filtering out those bad results by adding the filter:

- Item barcode NOT NULL OR BLANK

That had no effect at all. Grrrr.... I then tried:

- Item barcode => 1.

Yet, I continued to get rows of blank fields where barcodes should be. (I still don't understand that.) So I added all sorts of display fields to troubleshoot the report. I added:

- Hold ID
- Hold Cancel Date
- Hold Expire Date
- Capture Date
- Request Date

I will spare y'all the details about all the template permutations that I had created, with no success at ridding the report of those bad results. I was so very frustrated, wondering what I was not seeing, begging Evergreen to be nice to me. (Did I mention that there is a punch line to this story?)

But I did finally get rid of the blank rows by including the following filters:

- Fulfillment Date IS NULL
- Item is NOT DELETED

I was happy. Progress. But then I realized that my results were still not right. I was getting information on items that were on some other library's holds shelf. WHAT?!? Apparently, these items were showing up because we had been the pickup library for that item once upon a time.

So to clear that problem I added the following filter:

- Last Editing User's Home Library (Org Unit IN LIST)

Results looked good at first glance. I thought I was done. I printed the results. Woo-hoo.

Then I saw that I had duplicate data. The hold ID and the patron info were different, but the item info was the same on several rows. It was like I had multiple copies of the same item on the holds shelf. I realized that previous holds for items currently on the shelf were showing up on the list. These were previous holds requests where we were the pickup library, but the hold had been canceled. (I had already filtered out any previous holds that had been fulfilled.)

So I added the filter:
- Hold Cancel Date/Time NOT NULL

YAY! That time I got it. I was so happy and proud of myself. Until...

I got smart. I was going to double check my results. I went to check my results in Evergreen, comparing my results with Evergreen's "Browse Holds Shelf." That was when it all clicked. We didn't need no stinking report.

*blink blink*

Evergreen has the option right there to export the holds shelf list to a .csv file. Just take that file, open in Excel, and the data can be sorted any which way.

*slaps forehead*

Yes, it is true. A report is not always necessary.

*sigh*

Fortunately, it was a process of discovery. (Frustrating discovery, yes, but discovery nevertheless.)

I learned -- the hard way -- that while it would seem like asking for hold request information on a "Currently Targeted Copy" would only provide information about the current hold request, Evergreen begs to differ. Past data has to be carefully filtered out.

I also discovered new things like:

- Items with the status "On Holds Shelf" but not captured for a hold
- Weird, lingering hold requests that could use cleaning up
- The Shelf Time field

I'll write more about those exciting topics in my next post.

Thanks for reading. And if you would like detailed instructions on how to create my report -- even though Evergreen already provides you with all the information you need to clean up your holds shelf -- please just let me know.


No comments:

Post a Comment