Upload
tod
View
52
Download
0
Tags:
Embed Size (px)
DESCRIPTION
From Order to Checkout. Improving Workflows through Acq, Cat and Circ Jackie Wrosch Systems Librarian Eastern Michigan Univeristy. Overview. Ordering, cataloging and processing before Goals and improvements Tools used Workflows now Sample scripts and reports. Before.... - PowerPoint PPT Presentation
Citation preview
From Order to Checkout
Improving Workflows through Acq, Cat and Circ
Jackie WroschSystems Librarian
Eastern Michigan Univeristy
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 2
Overview Ordering, cataloging and processing before Goals and improvements Tools used Workflows now Sample scripts and reports
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 3
Before... Infrequent bulk imports Manual downloads and imports “On Order” location for items on order “Not Yet Available” location for items in
process Manual edits for all records Manual creation of all item records
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 4
Before...Ordering
Selectors order from Gobi Acq Librarian Reviews and Export
Acq LibrarianFTPs from Gobi
Acq Librarian Imports to Voyager
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 5
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 6
Before...Cataloging
Items Received in Acquisitions Sent to Cataloging
Locate, Create and Edit All Bib Records
Create an Item RecordWith Not Yet Available
Location
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 7
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 8
Before...Processing
Sent to Acquisitions Labeling
Change Location toFinal Destination
Sent to Circulation. Discharged and Shelved
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 9
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 10
Before...Location Status What does this mean?
On Order An order for the item has been placed through Gobi. We do not know when the book will arrive. Some orders are never filled. Patrons can not place holds on these items.
Not Yet Available
Not checked out
EMU has received the book and it is being processed. Processing time can vary from 2 to 8 weeks. Patrons can place a hold by contacting the Circulation desk during normal library hours
Any Location Not checked out
Item is on the shelf and available for checkout. [... Or maybe it was recently returned and is on a shelving cart. Or maybe we just finished processing it and its still in Technical Services waiting to come up to Circulation....] If you can’t find it contact the Circulation desk who will search for it for you.
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 11
Before... No way to place a request or hold through the
OPAC No idea when an item might be available Too many errors in changing location to final
destination Displayed information not always accurate at
that moment
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 12
Goals - Staff Automate downloading and importing records Automate repetitive cataloging tasks Don’t add any new manual workflows Eliminate problematic workflows
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 13
Goals – Public Clarify where an item is and when it is
expected to be available Make it easy to request an On Order item Make it easy to notify patrons when an item is
available
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 14
Tools shell and perl scripts OCLC PromptCat Voyager Bulkimport “On Order” patrons and status patron groups Offline charge files Voyager Hold functionality Gary Strawn’s LocationChanger program Shelving Intervals
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 15
Now...Location Status What does this mean?
On Order An order for the item has been placed through Gobi. We do not know when the book will arrive. Some orders are never filled. Patrons can not place holds on these items.
3rd Level On Order: Available Soon
It is expected in 2-3 weeks. Patrons can place a hold on the item through the OPAC and will be notified when the item is available.
Any Location Available Soon The book is in the building and being processed. Processing time can vary from 1-4 weeks. Patrons can place a hold on the item through the OPAC and will be notified when the item is available.
Any Location Not checked out – Returned mm/dd/yyyy
Item has been returned within the last 24 hours and is likely on a cart for reshelving
Any Location Not checked out
Item is on the shelf and available for checkout.
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 16
Now...Ordering
Selectors order from Gobi Acq Librarian Reviews and Export
Acq LibrarianFTPs from Gobi
Acq Librarian Imports to Voyager
gobi.sh runs M-F, 6am-4pm
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 17
Now...gobi.sh Downloads any new files from the Gobi site Sorts the records by 245|a Splits records into individual files Imports each record individually Results in a single PO, Bib record and On
Order MFHD
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 18
#!/bin/ksh
LOG=/export/home/voyager/scripts/logs/gobi.logCFG=/export/home/voyager/scripts/edi.cfgEDI=/m1/voyager/emichdb/ediMRC=$EDI/mrcMRC_P=$EDI/mrc_pDATE=`/bin/date "+%b %e"`SPLITMARC=/export/home/voyager/scripts/splitmarc.plSORTMARC=/export/home/voyager/scripts/sortmarc.pl
GOBI=`ps -ef |grep -c gobi.sh`ps -ef |grep gobi.sh >> $LOGecho $GOBI >> $LOGif [ "$GOBI" -gt 3 ]; then
/bin/date >> $LOGecho "gobi.sh already running, exiting..." >> $LOGexit
fi
Define locations and programs needed
If its already running, exit
gobi.sh part 1
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 19
/usr/local/bin/ncftpget -f $CFG $MRC 8058*.mrc
/usr/bin/ls $MRC/*.mrc > $MRC/tmp/usr/bin/sed 's/^.*\/8058/8058/' $MRC/tmp > $MRC/clean/usr/bin/ls $MRC_P/*.mrc > $MRC_P/tmp/usr/bin/sed 's/^.*\/8058/8058/' $MRC_P/tmp > $MRC_P/clean/usr/bin/diff $MRC/clean $MRC_P/clean > $EDI/mrc.todo.tmp/usr/bin/sed 's/^.* 8058/8058/' $EDI/mrc.todo.tmp >
$EDI/mrc.todo.clean/usr/bin/sed -n '/^8058/p' $EDI/mrc.todo.clean > $EDI/mrc.todo
/usr/bin/rm $MRC/tmp/usr/bin/rm $MRC/clean/usr/bin/rm $MRC_P/tmp/usr/bin/rm $MRC_P/clean/usr/bin/rm $EDI/mrc.todo.tmp/usr/bin/rm $EDI/mrc.todo.clean
Download from Gobi
Clean up from the previous step
Determine which files need processing
gobi.sh part 2
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 20
/usr/bin/cat $EDI/mrc.todo |while read linedo
/usr/bin/cp $MRC/$line $MRC_Pdone
/usr/bin/cat $EDI/mrc.todo |while read linedo
$SORTMARC $MRC/$line $MRC/$line.sortedMRC_COUNT=`$SPLITMARC $MRC/$line.sorted $MRC/$line.sorted`i=1while [ "$i" -le $MRC_COUNT ]do/m1/voyager/emichdb/sbin/Pbulkimport -f$MRC/$line.sorted-$i -iYBPselsleep 60/usr/bin/rm $MRC/$line.sorted-$ii=`expr $i + 1`done/usr/bin/rm $MRC/$line.sorted
done
Mark files as processed
Bulk import the records
Sort and Split the Files
gobi.sh part 3
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 21
#!/usr/local/bin/perl -wuse strict;use MARC;my $x = new MARC;my %inc = %{$x->usmarc_default()};my ($infile,$outfile) = @ARGV;$x->openmarc({
file=>$infile, format=>'usmarc', charset=>\%inc, lineterm=>"\n"
});
my %titles;while ($x->nextmarc(1)) {
my @field_987 = $x->getvalue({record=>1,field=>'987',subfield=>'a'});my @field_245 = $x->getvalue({record=>1,field=>'245',subfield=>'a'});
$titles{$field_987[0]}=$field_245[0];$x->output({
file=>">$field_987[0]",format=>'usmarc'
});$x->deletemarc();
Output each record to its own file
Open the MARC file
sortmarc.pl part 1
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 22
foreach my $value (sort{uc($titles{$a}) cmp uc($titles{$b})} keys %titles) {$x->openmarc({
file=>$value,format=>'usmarc', charset=>\%inc, lineterm=>"\n"
});
$x->nextmarc(1);$x->output({
file=>">>$outfile",format=>'usmarc'
});$x->deletemarc();unlink $value;
}
Output each record to the new sorted file
Sort the titles
sortmarc.pl part 2
Open each individual file
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 23
#!/usr/local/bin/perl -wuse strict;use MARC;my $x = new MARC;my %inc = %{$x->usmarc_default()};my ($infile,$outfile) = @ARGV;$x->openmarc({
file=>$infile, format=>'usmarc', charset=>\%inc, lineterm=>"\n"
});my $count=0;while ($x->nextmarc(1)) {
$count=$count+1;$x->output({file=>">>$outfile-$count",format=>'usmarc'});$x->deletemarc();
}print $count;
Output each record to its own file
Open the MARC file
splitmarc.pl
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 24
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 25
Now...Cataloging and Processing Contracted to OCLC PromptCat Locate best available bib record Barcode all items Label items that have good bib record Both Firm and Approval orders are processed
this way
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 26
Now...PromptCat
Items Received At PromptCat
Locate MOST Bib Records
Labeling andBarcoding
Items Shipped To EMU
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 27
Now...Cataloging
Items Received in Acquisitions Sent to Cataloging
Locate, Create and Edit All Bib Records
Create an Item RecordWith Not Yet Available
Location
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 28
Now...Processing
Sent to Acquisitions Labeling
Change Location toFinal Destination
Sent to Circulation. Discharged and Shelved
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 29
Now...Automated steps Receive weekly files Preprocess records to eliminate repetitive
tasks Bulkimport records Firm orders overlay our Gobi records – this
results in a double MFHD Approvals create new records – bibs,
MHFDs, items and POs New reports for reviewing and processing
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 30
Now...Automated steps
Download files Preprocess records
Bulkimport in to Voyager
Review and act ongenerated reports
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 31
Now...download.sh download.sh
Runs M-F at 4am Downloads any files from this month or last
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 32
#!/bin/ksh# Setting all the variables VOYDIR=/m1/voyager/emichdbLOG=/export/home/voyager/scripts/logs/promptcat.log
/bin/date >> $LOGecho "running promptcatd-download.sh... " >> $LOGPROMPTCAT=$VOYDIR/PromptCat
# File where the ftp commands used as input for "expect" are putftpfile=ftp.exp/usr/local/bin/expect $PROMPTCAT/$ftpfile &pid=$!/bin/wait $pid
ftp the files using expect
download.sh
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 33
#!/usr/local/bin/expect ~~
spawn $env(SHELL)
send "ftp edx.oclc.org\n"sleep 10 ;send "teye1\n"sleep 10 ;send "password\n"expect "ftp>" {send "lcd /m1/voyager/emichdb/PromptCat/mrc\n"}expect "ftp>" {send "passive\n"}expect "ftp>" {send "bin\n"}expect "ftp>" {send "prompt\n"}expect "ftp>" {send "cd 'edx.pcat.eye.'\n"}expect "ftp>" {send "mget RCD.YDX.EYE.D0806*.FIRM\n"}expect "ftp>" {send "mget RCD.YDX.EYE.D0805*.FIRM\n"}expect "ftp>" {send "mget RCD.YDX.EYEAP.D0806*.APPR\n"}expect "ftp>" {send "mget RCD.YDX.EYEAP.D0805*.APPR\n"}expect "ftp>" {send "bye\n"}
Login to the PromptCat server
ftp.exp
Download the files
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 34
Now...npasswd.sh npasswd.sh
Password stops working after 90 days Establishes a new password for PromptCat FTP
site Creates a new expect file for download.sh Runs on the 1st of the month Can’t repeat passwords
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 35
#!/bin/kshVOYDIR=/m1/voyager/emichdbPROMPTCAT=$VOYDIR/PromptCatLOG=/export/home/voyager/scripts/logs/promptcat.logUSED=$PROMPTCAT/used.txtMONTH=`date +%m`LASTMONTH=`expr $MONTH - 1`YEAR=`date +%y`LASTYEAR=$YEARif test "$LASTMONTH" -eq 0then
LASTYEAR=`expr $YEAR - 1`if test "$LASTYEAR" -lt 10then LASTYEAR=\0$LASTYEARfiLASTMONTH=12
elif test "$LASTMONTH" -lt 10then
LASTMONTH=\0$LASTMONTHfi/usr/bin/cat $USED |while read linedo
OLDPWD=`echo $line`done
Figure out current and last month so we know which files to download
npasswd.sh part 1
Get the current password
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 36
NEWOK=0NEWPWD=0while [ $NEWOK -eq 0 ]do
NEWPWD=`/usr/local/bin/mkpasswd -l 8 -C 1 -d 1`NEWOK=1/usr/bin/cat $USED |while read linedo
if test $line = $NEWPWD then
NEWOK=0fi
donedoneecho $NEWPWD >> $USED
Create a new password
npasswd.sh part 2
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 37
PWDEXP=$PROMPTCAT/pwd.exp/usr/bin/cp $PWDEXP $PWDEXP.old
echo "#!/usr/local/bin/expect ~~" > $PWDEXPecho "" >> $PWDEXPecho "spawn \$env(SHELL)" >> $PWDEXPecho "" >> $PWDEXPecho "send \"ftp edx.oclc.org\\\n\"" >> $PWDEXPecho "sleep 10 ;" >> $PWDEXPecho "send \"teye1\\\n\"" >> $PWDEXPecho "sleep 10 ;" >> $PWDEXPecho "send \"$OLDPWD/$NEWPWD/$NEWPWD\\\n\"" >> $PWDEXPecho "expect \"ftp>\" {send \"bye\\\n\"}" >> $PWDEXP
/usr/local/bin/expect $PWDEXP &
Create an expect file for changing the password
npasswd.sh part 3
Change the password on the server
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 38
FTPEXP=$PROMPTCAT/ftp.exp/usr/bin/cp $FTPEXP $FTPEXP.old
echo "#!/usr/local/bin/expect ~~" > $FTPEXPecho "" >> $FTPEXPecho "spawn \$env(SHELL)" >> $FTPEXPecho "" >> $FTPEXPecho "send \"ftp edx.oclc.org\\\n\"" >> $FTPEXPecho "sleep 10 ;" >> $FTPEXPecho "send \"teye1\\\n\"" >> $FTPEXPecho "sleep 10 ;" >> $FTPEXPecho "send \"$NEWPWD\\\n\"" >> $FTPEXPecho "expect \"ftp>\" {send \"lcd /m1/voyager/emichdb/PromptCat/mrc\\\n\"}" >>
$FTPEXPecho "expect \"ftp>\" {send \"passive\\\n\"}" >> $FTPEXPecho "expect \"ftp>\" {send \"bin\\\n\"}" >> $FTPEXPecho "expect \"ftp>\" {send \"prompt\\\n\"}" >> $FTPEXPecho "expect \"ftp>\" {send \"cd 'edx.pcat.eye.'\\\n\"}" >> $FTPEXPecho "expect \"ftp>\" {send \"mget RCD.YDX.EYE.D$YEAR$MONTH*.FIRM\\\n\"}" >>
$FTPEXPecho "expect \"ftp>\" {send \"mget RCD.YDX.EYE.D$LASTYEAR$LASTMONTH*.FIRM\\\
n\"}" >> $FTPEXPecho "expect \"ftp>\" {send \"mget RCD.YDX.EYEAP.D$YEAR$MONTH*.APPR\\\n\"}" >>
$FTPEXPecho "expect \"ftp>\" {send \"mget RCD.YDX.EYEAP.D$LASTYEAR$LASTMONTH*.APPR\\\
n\"}" >> $FTPEXPecho "expect \"ftp>\" {send \"bye\\\n\"}" >> $FTPEXP
Create the expect file for downloading records
npasswd.sh part 4
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 39
Now...loadrecs.sh Determines which files need to be pre-
processed and imported Runs the pre-process script, 650.pl Bulk imports the processed records Emails the Import log to the Cat staff Emails any discarded records Finds and emails the “On Order” MFHD IDs
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 40
#!/bin/kshMAILX=/usr/bin/mailxMAIL856="[email protected] [email protected]"MAILBARCODE="[email protected] [email protected]"MAILLOG="[email protected] [email protected] [email protected]"MAILDISCARD="[email protected] [email protected] [email protected]"MAILMFHD="[email protected] [email protected]"VOYDIR=/m1/voyager/emichdbPROMPTCAT=$VOYDIR/PromptCatMRC=$PROMPTCAT/mrcMRC_P=$PROMPTCAT/mrc_pOUTDIR=$PROMPTCAT/outMRC_FILES=RCD.YDX.*D*.$1SCRIPTS=/export/home/voyager/scripts/promptcatPREPROCESS=$SCRIPTS/650.plGETMFHDS=$SCRIPTS/mfhds.plDISCARDPL=$SCRIPTS/discard.plDISCARDWEBDIR=$VOYDIR/webvoyage/html/discardsCHARGE_BARCODE=299000028748if test "$1" == "FIRM"thenCHARGE_BARCODE=299000028746fiLOG=/export/home/voyager/scripts/logs/promptcat.log/bin/date >> $LOGecho "running promptcat.sh... " >> $LOG
Define all the people who get reports, directories and scripts that will be used throughout
loadrecs.sh part 1
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 41
/usr/bin/ls $MRC/$MRC_FILES > $MRC/tmp/usr/bin/sed 's/^.*RCD/RCD/' $MRC/tmp > $MRC/clean/usr/bin/ls $MRC_P/$MRC_FILES > $MRC_P/tmp/usr/bin/sed 's/^.*RCD/RCD/' $MRC_P/tmp > $MRC_P/clean/usr/bin/diff $MRC/clean $MRC_P/clean > $PROMPTCAT/mrc.todo.tmp/usr/bin/sed 's/^.*RCD/RCD/' $PROMPTCAT/mrc.todo.tmp >
$PROMPTCAT/mrc.todo.clean/usr/bin/sed -n '/^RCD/p' $PROMPTCAT/mrc.todo.clean >
$PROMPTCAT/mrc.todo
/usr/bin/rm $MRC/tmp/usr/bin/rm $MRC/clean/usr/bin/rm $MRC_P/tmp/usr/bin/rm $MRC_P/clean/usr/bin/rm $PROMPTCAT/mrc.todo.tmp/usr/bin/rm $PROMPTCAT/mrc.todo.clean
LOGDIR=$VOYDIR/rptLOGTOSEND=$LOGDIR/logimp.tosend/usr/bin/rm $LOGTOSEND
Compare the files in the downloaded and processed directories to determine what needs processing
loadrecs.sh part 2
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 42
/usr/bin/cat $PROMPTCAT/mrc.todo |while read linedo
OUT856FILE=out856.$line.txtBARCODEFILE=barcodes.$line.cap.s$PREPROCESS $MRC/$line $OUTDIR/$line $OUTDIR/$OUT856FILE $OUTDIR/$BARCODEFILE $CHARGE_BARCODEfor USER in `/bin/echo $MAIL856`; do
$MAILX -s "$OUT856FILE" $USER < $OUTDIR/$OUT856FILEdonefor USER in `/bin/echo $MAILBARCODE`; do
$MAILX -s "$BARCODEFILE" $USER < $OUTDIR/$BARCODEFILEdoneDATE=`/bin/date "+%Y%m%d.%H%M"`/m1/voyager/emichdb/sbin/PromptcatBulkImport -f$OUTDIR/$line -i$2 &waitecho "Pbulkimport -f$OUTDIR/$line..." >> $LOGecho $DATE >> $LOGTOSEND/usr/bin/cp $OUTDIR/$line $MRC_P
done
/usr/bin/rm $PROMPTCAT/mrc.todo
Preprocess the files
loadrecs.sh part 3
Mail 856 and Barcode reports
Bulk import the records and move file to processed directory
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 43
/usr/bin/cat $LOGTOSEND |while read linedo
LOGIMP=log.imp.$linefor USER in `/bin/echo $MAILLOG`; do
$MAILX -s "$LOGIMP" $USER < "$LOGDIR/$LOGIMP"doneDISCARD=discard.imp.$lineDISCARDTXT=$DISCARD.txt$DISCARDPL $LOGDIR/$DISCARD $LOGDIR/$DISCARDTXTprint "http://portal.emich.edu/discards/$DISCARD" >> $LOGDIR/$DISCARDTXT/usr/bin/cp $LOGDIR/$DISCARD $DISCARDWEBDIRfor USER in `/bin/echo $MAILDISCARD`; do
$MAILX -s "$DISCARD" $USER < "$LOGDIR/$DISCARDTXT"doneif test "$1" == "FIRM"then/usr/bin/sed -n '/[0-9]\{6,7\} - 100/p' $LOGDIR/$LOGIMP > $LOGDIR/$LOGIMP.new/usr/bin/sed 's/ - 100//g' $LOGDIR/$LOGIMP.new > $LOGDIR/$LOGIMP.final$GETMFHDS $LOGDIR/$LOGIMP.finalfor USER in `/bin/echo $MAILMFHD`; do
$MAILX -s "$LOGIMP.final.mfhds" $USER < "$LOGDIR/$LOGIMP.final.mfhds"donefi
done
Mail bulkimport log
loadrecs.sh part 4
Mail discarded records
Find double MFHDs and mail the report
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 44
Now... 650.pl Delete any non-LCSH subjects Delete any 856 with 2nd indicator 2 If there is a 505 and an 856 TOC link, delete
the 856 Output all other 856s to a report Deletes any 938s Gets incoming barcodes from the 987 and
creates an offline charge file
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 45
#!/usr/local/bin/perl -wuse MARC::Batch;my ($infile,$out_usmarc,$out_856,$out_barcode,$barcode) = @ARGV;my $batch = MARC::Batch->new('USMARC', "$infile");open(OUT, ">$out_usmarc");open(OUT_856, ">$out_856");open(OUT_BCODES, ">$out_barcode");
print OUT_BCODES "CAPTURE\n";print OUT_BCODES "PATRON ".$barcode."\n";print OUT_BCODES "DUE_DATE 2382-12-31 23:59:00\n";print OUT_BCODES "BEGIN_CHARGE\n";while (my $record = $batch->next()) {
my @fields = $record->field('6..');foreach my $field (@fields) {if ( $field ) {
if ( $field->indicator(2) eq '2'|| $field->indicator(2) eq '6'|| $field->indicator(2) eq '7' )
{ $record->delete_field($field); }}}
Open files for processed records, 856 report, offline charge file
650.pl part 1
Create the first part of the offline charge file
Remove non-LCSH subjects
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 46
my $field_505 = $record->field('505');my $oclcnum = $record->field('035');my @fields_856 = $record->field('856');foreach my $field_856 (@fields_856) {
if ( $field_856->indicator(2) eq '2' ) { $record->delete_field($field_856);
}elsif ( $field_856->indicator(2) eq '1') {if ( $field_505 && index($field_856->as_string(),"Table of contents") ge 0 ) {$record->delete_field($field_856);}else {
print OUT_856 $oclcnum->as_string(), "\n"; print OUT_856 $field_856->as_string(), "\n";
}}
}my @fields_938 = $record->field('938');foreach my $field_938 (@fields_938) {
$record->delete_field($field_938);}
Create the 856 reports for TOC links
650.pl part 2
Remove 938 field
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 47
my $barcode = $record->subfield('987', "a");if ( $barcode ){
print OUT_BCODES "ITEM ".$barcode."\n";}
print OUT $record->as_usmarc();}print OUT_BCODES "END_CHARGE\n";
close(OUT);close(OUT_856);close(OUT_BCODES);
Add the barcode to the offline charge file
650.pl part 3
Output the processed record
Finish the offline charge file
Close all the output files
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 48
Now... discard.pl Opens the discard file from the bulk import Puts OCLC number and title into a report
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 49
#!/usr/local/bin/perl -wuse MARC::Batch;my ($infile,$outfile) = @ARGV;my $batch = MARC::Batch->new('USMARC', "$infile");
open(OUT, ">$outfile");while (my $record = $batch->next()) {
my $oclcnum = $record->field('035');my $title = $record->field('245');print OUT $oclcnum->as_string(), "\n", $title->as_string(), "\n\n";
}close(OUT);
Open the discard file
Put OCLC No. and Title into the discard report
discard.pl
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 50
Now... mfhds.pl Opens a file of updated bibids Gets the On Order MFHD for those ids Outputs the MFHD_IDs to a report
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 51
#!/m1/shared/bin/perluse DBI;$ENV{ORACLE_SID} = "VGER";$ENV{ORACLE_HOME} = "/oracle/app/oracle/product/10.2.0/db_1";my $db_name = “xxxdb";my $username = "ro_xxxdb";my $password = "ro_xxxdb";
my ($infile) = @ARGV;my ($outfile) = $infile.".mfhds";my @bibids;
my $i=0;open(INFILE, $infile);while( <INFILE> ){
$bibids[$i] = $_;$bibids[$i++] =~ s/^\s+//;
}close(INFILE);
Information on connecting to Oracle
mfhds.pl part 1
Put the incoming bibids in an array
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 52
my $count=0;open(OUTFILE, ">$outfile");my $dbh = DBI->connect('dbi:Oracle:', $username, $password)
|| die "Could not connect: $DBI::errstr";while ( $count < $i ){
my $select = "select $db_name.bib_mfhd.mfhd_id from $db_name.bib_mfhd, $db_name.mfhd_master where $db_name.bib_mfhd.mfhd_id=$db_name.mfhd_master.mfhd_id and $db_name.bib_mfhd.bib_id=$bibids[$count++] and $db_name.mfhd_master.location_id=65";
my $sth = $dbh->prepare($select) || die $dbh->errstr;$sth->execute|| die $dbh->errstr;while( my (@entry) = $sth->fetchrow_array() ) {print OUTFILE "$entry[0]\n";}
}close(OUTFILE);exit(0);
Get the On Order MFHD for the incoming records
mfhds.pl part 2
Output the MFHD_ID
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 53
Now...New Cataloging Workflows Review the 856 TOC links and add when
necessary Review any discarded records and re-import Run the offline charge files through the Circ
client Run the “On Order” MFHD ids through
LocationChanger to suppress the records
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 54
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 55
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 56
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 57
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 58
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 59
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 60
Now...Cataloging/Processing at EMU Items received in Acquisitions Those items needing additional cataloging
and/or processing are charged to the Available Soon patron
All others immediately sent to Circulation for discharging, fulfilling holds or shelving
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 61
Now...Cataloging/Processing at EMU
Items Received in Acquisitions Sent to Cataloging
Locate, Create and Edit All Bib Records
Create an Item RecordWith Not Yet Available
Location
Only items needing additional cataloging or processing are charged
to the Not Yet Available patron
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 62
Now...Cataloging/Processing at EMU
Sent to Acquisitions Labeling
Change Location toFinal Destination
Sent to Circulation. Discharged and Shelved
Fewer items go through the manual cataloging/processing steps at EMU
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 63
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 64
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 65
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 66
Before...Location Status What does this mean?
On Order An order for the item has been placed through Gobi. We do not know when the book will arrive. Some orders are never filled. Patrons can not place holds on these items.
Not Yet Available
Not checked out
EMU has received the book and it is being processed. Processing time can vary from 2 to 8 weeks. Patrons can place a hold by contacting the Circulation desk during normal library hours
Any Location Not checked out
Item is on the shelf and available for checkout. [... Or maybe it was recently returned and is on a shelving cart. Or maybe we just finished processing it and its still in Technical Services waiting to come up to Circulation....] If you can’t find it contact the Circulation desk who will search for it for you.
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 67
Now...Location Status What does this mean?
On Order An order for the item has been placed through Gobi. We do not know when the book will arrive. Some orders are never filled. Patrons can not place holds on these items.
3rd Level On Order: Available Soon
PromptCat has processed the book and it is being shipped. It is expected in 2-3 weeks. Patrons can place a hold on the item through the OPAC and will be notified when the item is available.
Any Location Available Soon The book is in the building and being processed. Processing time can vary from 1-4 weeks. Patrons can place a hold on the item through the OPAC and will be notified when the item is available.
Any Location Not checked out – Returned mm/dd/yyyy
Item has been returned within the last 24 hours and is likely on a cart for reshelving
Any Location Not checked out
Item is on the shelf and available for checkout.
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 68
Goals - Staff Automate downloading and importing records Automate repetitive cataloging tasks Don’t add any new manual workflows Eliminate problematic workflows
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 69
Goals – Public Clarify where an item is and when it is
expected to be available Make it easy to request an On Order item Make it easy to notify patrons when an item is
available
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 70
On Order Books List
From Order to Checkout: Improving Workflows through Acq, Cat and Circ 71
Questions? Comments?
http://people.emich.edu/jwrosch/ELUNA2008
Jackie WroschEastern Michigan University