from order to checkout

Post on 16-Jan-2016

15 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

From Order to Checkout. Improving Workflows through Acq, Cat and Circ Jackie Wrosch Systems Librarian Eastern Michigan Univeristy. Before.... Infrequent bulk imports Manual downloads and imports “On Order” location for items on order “Not Yet Available” location for items in process - PowerPoint PPT Presentation

TRANSCRIPT

From Order to Checkout

Improving Workflows through Acq, Cat and Circ

Jackie Wrosch

Systems Librarian

Eastern Michigan Univeristy

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 2

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 3

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 4

Before...Ordering

Selectors order from GobiAcq 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...

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 11

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 12

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 13

Tools

shell and perl scripts OCLC PromptCat Voyager Bulkimport “On Order” patrons and patron groups Voyager Hold functionality Gary Strawn’s LocationChanger program

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 14

Now...Ordering

Selectors order from GobiAcq 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 15

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 16

#!/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 17

/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 18

/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 -iYBPsel

sleep 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 19

#!/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 20

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 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 $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 22

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 23

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 24

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 25

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 26

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 27

Now...Automated imports

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 28

Now...Automated imports

Download files Preprocess records

Bulkimport in to Voyager

Review and act ongenerated reports

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 29

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 30

#!/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 31

#!/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 32

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 33

#!/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 34

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 35

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 36

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 37

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 38

#!/bin/kshMAILX=/usr/bin/mailxMAIL856="lois.whitehead@emich.edu jwrosch@gmail.com"MAILBARCODE="jwrosch@gmail.com carol.smallwood@emich.edu"MAILLOG="whogan@emich.edu carol.smallwood@emich.edu jwrosch@gmail.com"MAILDISCARD="whogan@emich.edu carol.smallwood@emich.edu jwrosch@gmail.com"MAILMFHD="jwrosch@gmail.com carol.smallwood@emich.edu"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 39

/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 40

/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 41

/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 42

Now... 650.pl

Delete any subjects with 2nd indicator 2,6 or 7 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 43

#!/usr/local/bin/perl -w

use 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 44

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 45

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 46

#!/usr/local/bin/perl -w

use 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 47

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 1

Output the MFHD_ID

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 48

#!/m1/shared/bin/perl

use 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 2

Put the incoming bibids in an array

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 49

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 50

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 51

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 52

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 53

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

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 57

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 58

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 59

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 60

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 61

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 62

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 63

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 64

On Order Books List

From Order to Checkout: Improving Workflows through Acq, Cat and Circ 65

Questions? Comments?

Jackie Wrosch

Eastern Michigan University

jwrosch@emich.edu

top related