fetch it! a custom voyager service for holds/retrieval without using reporter

36
FETCH IT! A CUSTOM VOYAGER SERVICE FOR HOLDS/RETRIEVAL WITHOUT USING REPORTER Ray Schwartz, Library Information Systems Victoria Wagner, Lending Services Cheng Library, William Paterson University Wayne, NJ

Upload: ray-schwartz

Post on 05-Dec-2014

85 views

Category:

Services


0 download

DESCRIPTION

A Custom Voyager service for Holds/Retrieval without using reporter

TRANSCRIPT

Page 1: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

FETCH IT!

A CUSTOM VOYAGER SERVICE FOR HOLDS/RETRIEVAL WITHOUT USING REPORTER

Ray Schwartz, Library Information Systems

Victoria Wagner, Lending Services

Cheng Library, William Paterson University

Wayne, NJ

Page 2: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

PURPOSE

Library Goal: Exceed our users’ expectations.

Design a book paging service available 7 days a week whenever the Library is open.

Page 3: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

PLANNING

Lending Services and Library Information Systems librarians met to discuss how to implement a paging service using Voyager and patron-initiated OPAC holds.

Page 4: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

VOYAGER CUSTOMIZATION

In Sys Admin, Circulation, Policy Definitions, Patron Rules, we activated Place Holds Using the OPAC.

Page 5: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

VOYAGER CUSTOMIZATION, CONTINUED

Sys Admin, Policy Definitions, Matrix, Patron/Item, Activate Hold in Settings

Sys Admin, Policy Definitions, Matrix, Patron/Item, Intervals, add Hold Shelf Life

Page 6: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

VOYAGER CUSTOMIZATION, CONTINUED

Sys Admin, OPAC Configuration, Miscellaneous, we activated Allow On-Shelf OPAC Holds:

Page 7: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

OPAC CUSTOMIZATION

We added a Fetch It! request link within each bibliographic record of circulating materials.

Page 8: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

OPAC CUSTOMIZATION, CONTINUED

After requesting an item, patrons are reminded about the Fetch policies and are required to select a Pickup Location.

Page 9: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

BEHIND THE SCENES:STAFF WORKFLOW

Lending Services staff check live query throughout the day and page requested materials.

Fetched items are discharged in Voyager. Requesting patron information is printed at

discharge. Items put on hold shelf for 5 days. Staff review hold shelf daily to remove

cancelled or non-collected hold requests.

Page 10: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

BEHIND THE SCENES:REPORTS

Live query of Voyager displays current patron-initiated hold requests through OPAC.

Staff check query hourly and page materials throughout the day.

Page 11: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

BEHIND THE SCENES:REPORTS, CONTINUED

Daily report of holds which includes cancelled holds – whether expired (never picked up from hold shelf) or cancelled by the patron – emailed to Lending Services staff for review.

Circjob 5 is scheduled to run 5x/day sending Item Available notices via email to patrons as materials are fetched. Lending Services staff members are copied on all emails.

Page 12: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

BEHIND THE SCENESREPORTS, CONTINUED

Ray’s Discussion of Reports

Page 13: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

How this was done

CircjobsHolds Notices script

Circjob 5Email notices to patron and staff

Holds Report scriptPerl script processes current holdsPerl script processes old holdsEmail reports to staff

Live Report On Demand

Page 14: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

Circjobs running directly under Cron

5 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j16 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j27 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j38 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j49 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j611 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j712 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j810 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j2415 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j1916 0 * * 0-5 /m1/voyager/wmpatrsndb/sbin/Pcircjob -j26

Page 15: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

# run circjob 5/m1/voyager/wmpatrsndb/sbin/Pcircjob -j5# rename outputmv /m1/voyager/wmpatrsndb/rpt/crcnotes.CircDesk.inp /m1/incoming/holds/crcnotes.CircDesk.inp

# extract holdsegrep ^01 /m1/incoming/holds/crcnotes.CircDesk.inp > /m1/incoming/holds/crcnotes.CircDesk.inp.holds

# extract all without holdsegrep -v ^01 /m1/incoming/holds/crcnotes.CircDesk.inp > /m1/incoming/holds/crcnotes.CircDesk.inp.woholds

# remove inp filerm /m1/incoming/holds/crcnotes.CircDesk.inp

# rename without holds file back to original filenamemv /m1/incoming/holds/crcnotes.CircDesk.inp.woholds /m1/voyager/wmpatrsndb/rpt/crcnotes.CircDesk.inp

Holds Notices Script – Part 1

Page 16: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

Output of Circjob 5

1|97.2|[email protected]|00000|XXX|XX X||000 St|||||City|NJ|07470|US|2010000000|10/20/2014|David and Lorraine Cheng Library|Circulation Dept|Cheng Library Lending Services 973-720-3180|William Paterson University|300 Pompton Road|Wayne|NJ|07470|USA|973-720-3180|Scientist in the crib : minds, brains, and how children learn / Alison Gopnik, Andrew N. Meltzoff, Patricia K. Kuhl.|Gopnik, Alison.|33007007965144|BF311 .G627 1999||10/25/2014

Page 17: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

split -1 /m1/incoming/holds/crcnotes.CircDesk.inp.holds

while ls -t x* do

FILE=`ls -t x* | head -n 1`EMAIL=`nawk 'FS="|" { print $3}' /m1/incoming/holds/$FILE`

sleep 2echo $MONTH/$DAY/$YEAR > mail1 echo " " >> mail1echo David and Lorraine Cheng Library >> mail1echo Circulation Dept >> mail1echo " " >> mail1nawk 'FS="|" { print "Dear "$6" "$5}' /m1/incoming/holds/$FILE >> mail1echo " " >> mail1nawk 'FS="|" { print "The item(s) that you requested are now available at the location(s) shown below until "$34}' /m1/incoming/holds/$FILE >> mail1echo LOCATION: Lending Services Desk >> mail1echo " " >> mail1nawk 'FS="|" { print "Title:\t\t"$29"\nAuthor:\t"$30"\nItem ID:\t"$31"\nCall No:\t\t"$32}' .../$FILE >> mail1mailx -s "Item Available Notice" -b [email protected] -c [email protected] [email protected] $EMAIL < mail1

mv $FILE oldfilsdoneexit

Holds Notices Script – Part 2

Page 18: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

Holds Notices Script is run 5x a day via Cron

5 09 * * * /m1/incoming/holds/holdsnotices.ksh5 12 * * * /m1/incoming/holds/holdsnotices.ksh0 15 * * * /m1/incoming/holds/holdsnotices.ksh0 18 * * * /m1/incoming/holds/holdsnotices.ksh0 21 * * * /m1/incoming/holds/holdsnotices.ksh

Page 19: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

From: Voyager Owner Sent: Tuesday, October 14, 2014 12:05 PMTo: xxxxxxxxxxx; Pruden, JillCc: Wagner, VictoriaSubject: Item Available Notice

10/14/2014David and Lorraine Cheng LibraryCirculation Dept Dear xxxxxxxxxxxxx The item(s) that you requested are now available at the location(s) shown below until 10/19/2014LOCATION: Lending Services Desk Title: Fierce yellow pumpkin / story by Margaret Wise Brown ; pictures by Richard Egielski.Author: Brown, Margaret Wise, 1910-1952.Item ID: 33007008612455Call No: P J Bro

Page 20: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

Reports

Holds Report scriptl Perl script processes current holdsl Perl script processes old holdsl Email reports to staff

lLive Report On Demand - Coldfusion

Page 21: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter
Page 22: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter
Page 23: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter
Page 24: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

Perl Scriptsholds-current.pl

Reports from HOLD_RECALL tableholds-old.pl

Reports from HOLD_RECALL_ARCHIVE table

Page 25: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

Holds Report Script – Part 1

/m1/shared/bin/perl /m1/incoming/holds/holds-current.pl

# Process current lending holds

grep '|Cancelled|' holds-currentL.txt > holds-oldtempL.txtgrep '|Expired|' holds-currentL.txt >> holds-oldtempL.txtgrep -v '|Cancelled|' holds-currentL.txt > holds-curtemp.txtgrep -v '|Expired|' holds-curtemp.txt > holds-curtemp2.txt

sed "s/\|/\"\,\"/g" /m1/incoming/holds/holds-curtemp2.txt > /m1/incoming/holds/holds-current1.txtsed "s/^/\"/g" /m1/incoming/holds/holds-current1.txt > /m1/incoming/holds/holds-current2.txtsed "s/$/\"/g" /m1/incoming/holds/holds-current2.txt > /m1/incoming/holds/holds-current3L.txt

Page 26: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

Holds Report Script – Part 2

/m1/shared/bin/perl /m1/incoming/holds/holds-old.pl

# Process old lending holds and adding old holds extracted from current file

nawk 'FS="|" {print $1"||"$5"|"$6"|"$7"||"$11"|"$8"|"$9"|"$12"|"$13}' holds-oldtempL.txt >> holds-oldL.txt

sed "s/\|/\"\,\"/g" /m1/incoming/holds/holds-oldL.txt > /m1/incoming/holds/holds-old1.txtsed "s/^/\"/g" /m1/incoming/holds/holds-old1.txt > /m1/incoming/holds/holds-old2.txtsed "s/$/\"/g" /m1/incoming/holds/holds-old2.txt > /m1/incoming/holds/holds-old3L.txt

Page 27: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

Holds Report Script – Part 3# Prepare lending audits

cp holds-current.asc holds-currentL.csvcp holds-old.asc holds-oldL.csv

/bin/cat holds-current3L.txt >> holds-currentL.csv/bin/cat holds-old3L.txt >> holds-oldL.csv

# Mail lending audits

(uuencode /m1/incoming/holds/holds-currentL.csv holds-currentL.csv; uuencode /m1/incoming/holds/holds-oldL.csv holds-oldL.csv) | mailx -s "Report of Holds" [email protected] [email protected] [email protected]

mv *.txt oldfilsmv *.csv oldfils

exit

Page 28: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

<h2>Circulation Desk</h2><CFQUERY DATASOURCE = "VOYAGER" NAME = "holds">SELECT

HOLD_RECALL.CREATE_DATE, LOCATION.LOCATION_NAME, MFHD_MASTER.DISPLAY_CALL_NO, ITEM_TYPE.ITEM_TYPE_DISPLAY, BIB_TEXT.TITLE, HOLD_RECALL.PATRON_COMMENT, MFHD_ITEM.ITEM_ENUM, ITEM_BARCODE.ITEM_BARCODE

FROM (((((MFHD_MASTER INNER JOIN MFHD_ITEM ON MFHD_MASTER.MFHD_ID = MFHD_ITEM.MFHD_ID) INNER JOIN LOCATION ON MFHD_MASTER.LOCATION_ID = LOCATION.LOCATION_ID) INNER JOIN (BIB_MFHD INNER JOIN BIB_TEXT ON BIB_MFHD.BIB_ID = BIB_TEXT.BIB_ID) ON MFHD_MASTER.MFHD_ID =

BIB_MFHD.MFHD_ID) INNER JOIN (ITEM_TYPE INNER JOIN ((HOLD_RECALL INNER JOIN HOLD_RECALL_ITEMS ON HOLD_RECALL.HOLD_RECALL_ID =

HOLD_RECALL_ITEMS.HOLD_RECALL_ID) INNER JOIN ITEM ON HOLD_RECALL_ITEMS.ITEM_ID = ITEM.ITEM_ID) ON

ITEM_TYPE.ITEM_TYPE_ID = ITEM.ITEM_TYPE_ID) ON MFHD_ITEM.ITEM_ID = ITEM.ITEM_ID) INNER JOIN ITEM_STATUS ON ITEM.ITEM_ID = ITEM_STATUS.ITEM_ID) INNER JOIN ITEM_BARCODE

ON ITEM.ITEM_ID = ITEM_BARCODE.ITEM_IDWHERE

(((HOLD_RECALL_ITEMS.HOLD_RECALL_STATUS)='1') AND ((HOLD_RECALL_ITEMS.QUEUE_POSITION)='1') AND ((HOLD_RECALL.CREATE_OPID) Like 'OPAC') AND ((ITEM_STATUS.ITEM_STATUS) In ('1','11')) AND ((HOLD_RECALL.PICKUP_LOCATION)='22'))

ORDER BY LOCATION.LOCATION_NAME, MFHD_MASTER.NORMALIZED_CALL_NO;</CFQUERY>

Coldfusion Query

Page 29: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

<cfset todayDate = Now()><cfset todayDate = DateFormat(todayDate, "mmm-d")><cfif holds.RecordCount eq 0><h2>No pending hold requests found</h2><cfelse><cfset nrows = 1><table><th scope="col"></th><th scope="col">Date</th><th scope="col">Location</th><th scope="col">Call Number</th><th scope="col">Type</th><th scope="col">Title</th><th scope="col">Patron Comments</th><th scope="col">Barcode</th><cfoutput query="holds"><tr><th scope="row">#nrows#</th><cfif DateFormat(holds.CREATE_DATE, "mmm-d") eq todayDate><cfset datestyle = 'today'><cfelse><cfset datestyle = 'otherday'></cfif><td class="#datestyle#" width="7%">#DateFormat(holds.CREATE_DATE, "mmm-d")# #TimeFormat(holds.CREATE_DATE, "h:mmtt")#</td><td width="5%">#holds.LOCATION_NAME#</td><td >#holds.DISPLAY_CALL_NO# #holds.ITEM_ENUM#</td><td width="3%">#holds.ITEM_TYPE_DISPLAY#</td><td width="45%">#holds.TITLE#</td><td width="5%">#holds.PATRON_COMMENT#</td><td width="7%">#holds.ITEM_BARCODE#</td></tr><cfset nrows = nrows+1></cfoutput></cfif></table>

Coldfusion Output

Page 30: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

Live Coldfusion Query/Report

Page 31: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

GETTING THE WORD OUT Designed posters which

were displayed in Library and in academic buildings, dorms, student center.

Designed business cards which were distributed at Library service points.

Page 32: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

GETTING THE WORD OUT, CONTINUED

Prominently promoted on Library webpage:

Page 33: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

USE DATA

We receive monthly report of total # of requests.

We track # of cancelled holds – 20% not picked up.

Fall 2013, 831 items fetched. Spring 2014, 900 items fetched.

Page 34: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

ASSESSMENT

During Spring 2014, we contacted 300 patrons who had used the service and asked them to complete an anonymous survey.

Students use the service much more than faculty.

Users discovered the service using online catalog, homepage or by word of mouth from library staff and/or friends.

Overwhelmingly, students love and recommend Fetch!

Page 35: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

ASSESSMENT, CONTINUED

Based on survey feedback, for the Fall 2014 semester:

We increased hold shelf life from 3 to 5 days.

We increased frequency of Item Available notification.

We asked librarians to mention during instruction.

We promoted service in campus newspapers and on FB.

Page 36: Fetch It! A Custom Voyager service for Holds/Retrieval without using reporter

QUESTIONS

Ray Schwartz: Library Information [email protected] or 973.720.3192

Victoria Wagner: Access Services Librarian, Head of Lending [email protected] or 973.720.3190