My Back(log) is killing me!
Receiving in Alma without using the workbench
Harvard Library & National Library of New Zealand
National Library of New Zealand | Te Puna Mātauranga o Aotearoa
Dale Cousens
Team Leader Collection Development (Acquisitions) | Kaiārahi Rōpū Whakawhanake Kohinga (Ngā Whiwhinga)
Harvard Library
Erin Britt
Continuing Resources & Acquisitions Library Assistant
Katheryn Marchak-Wansor
Continuing Resources & Acquisitions Library Assistant
Patty Sutton
Senior Functional Coordinator for Monographic Acquisitions
Introducing the National Library of New Zealand
The National Library of New Zealand/Te Puna Mātauranga o Aotearoa is in Wellington, the national capital.
We are a library within a library:
We are the Legal Deposit library for New Zealand:
We migrated to Alma in 2016 and with new software come new tools. We also had a tech wiz embedded in the Acquisitions/Legal Deposit team for 18 months in 2019/2020.
Introducing the National Library of New Zealand
Creating the script
It started with a backlog
Photo credit: Amy Dittman
Photo credit: Amy Dittman
Photo credit: Amy Dittman
Photo credit: Amy Dittman
Photo credit: Elke Piontek
Photo credit: Elke Piontek
Photo credit: Elke Piontek
It started with a backlog
Little to no experience with Python
The project took 9 months from start to production
Began using the API in Alma production
March 2021
Approved by our Library Technical Services (LTS) for use in Alma production
February 2021
Finished developing the script
December 2020
Began testing in Alma sandbox
October 2020
Began learning Python and modifying the script
June 2020
Making Friends with the Script
How can we make the script locate the correct holdings?
Solution:
Look up the holdings by POL
Script Development
A | B | C | D | E | F | G |
Title | MMS | POL | WN Holding | ATL Holding | PROD/SAND | SIGNED OFF |
Upper Clutha Messenger | 9912928843502830 | 166395-ilsdb | 22195001140002836 | 22195001140002800 | PROD | Y |
Valley Voice Rural Lifestyles | 9918872173602830 | POL-111795 | 22336002950002800 | 22336002940002800 | PROD | Y |
Title Lookup Spreadsheet
A | B | C | D | E | F | G | H | I | J | K | L | M |
MMSID | Volume | Number | Issue | Year | Month | Day | ATL_Barcode | WN_Barcode | PublicNote | InternalNote | Title | Informal notes |
999255603502836 | 42 | 40 | | 2020 | 10 | 7 | 74444000339541 | 32222000926592 | | | Upper Clutha Messenger | |
9918872173602830 | | | | 2021 | 10 | | 74444000439498 | 32222001169450 | | | Valley Voice Rural Lifestyles | |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Volume | Number | Issue | Year | Month | Day | ATL_Barcode | WN_Barcode | PublicNote | InternalNote | Title | Informal notes |
POL-232515 | 42 | 40 | | 2020 | 10 | 7 | 74444000339541 | 32222000926592 | | | Upper Clutha Messenger | |
125321-2 | | | | 2021 | 10 | | 74444000439498 | 32222001169450 | | | Valley Voice Rural Lifestyles | |
User Input Spreadsheet
A | B | C | D | E | F |
Title | POL | WN Holding | ATL Holding | PROD/SAND | SIGNED OFF |
Upper Clutha Messenger | 166395-ilsdb | 22195001140002836 | 22195001140002800 | PROD | Y |
Valley Voice Rural Lifestyles | POL-111795 | 22336002950002800 | 22336002940002800 | PROD | Y |
A | B | C | D | E | F | G | H | I | J | K | L | M |
MMSID | Volume | Number | Issue | Year | Month | Day | ATL_Barcode | WN_Barcode | PublicNote | InternalNote | Title | Informal notes |
999255603502836 | 42 | 40 | | 2020 | 10 | 7 | 74444000339541 | 32222000926592 | | | Upper Clutha Messenger | |
9918872173602830 | | | | 2021 | 10 | | 74444000439498 | 32222001169450 | | | Valley Voice Rural Lifestyles | |
A | B | C | D | E | F | G |
Title | MMS | POL | WN Holding | ATL Holding | PROD/SAND | SIGNED OFF |
Upper Clutha Messenger | 9912928843502830 | 166395-ilsdb | 22195001140002836 | 22195001140002800 | PROD | Y |
Valley Voice Rural Lifestyles | 9918872173602830 | POL-111795 | 22336002950002800 | 22336002940002800 | PROD | Y |
Will two identical items ever be added at the same time?
Solution:
Remove references to second item
Script Development
User Input Spreadsheet
Title Lookup Spreadsheet
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Volume | Number | Issue | Year | Month | Day | ATL_Barcode | WN_Barcode | PublicNote | InternalNote | Title | Informal notes |
POL-232515 | 42 | 40 | | 2020 | 10 | 7 | 74444000339541 | 32222000926592 | | | Upper Clutha Messenger | |
125321-2 | | | | 2021 | 10 | | 74444000439498 | 32222001169450 | | | Valley Voice Rural Lifestyles | |
A | B | C | D | E | F |
Title | POL | WN Holding | ATL Holding | PROD/SAND | SIGNED OFF |
Upper Clutha Messenger | 166395-ilsdb | 22195001140002836 | 22195001140002800 | PROD | Y |
Valley Voice Rural Lifestyles | POL-111795 | 22336002950002800 | 22336002940002800 | PROD | Y |
A | B | C | D | E | F | G | H | I | J | K | L |
POL | Volume | Number | Issue | Year | Month | Day | Barcode | PublicNote | InternalNote | Title | Informal notes |
POL-232515 | 42 | 40 | | 2020 | 10 | 7 | 74444000339541 | | | Upper Clutha Messenger | |
125321-2 | | | | 2021 | 10 | | 74444000439498 | | | Valley Voice Rural Lifestyles | |
A | B | C | D | E |
Title | POL | Holdings ID | PROD/SAND | SIGNED OFF |
Upper Clutha Messenger | 166395-ilsdb | 22195001140002836 | PROD | Y |
Valley Voice Rural Lifestyles | POL-111795 | 22336002950002800 | PROD | Y |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Volume | Number | Issue | Year | Month | Day | ATL_Barcode | WN_Barcode | PublicNote | InternalNote | Title | Informal notes |
POL-232515 | 42 | 40 | | 2020 | 10 | 7 | 74444000339541 | 32222000926592 | | | Upper Clutha Messenger | |
125321-2 | | | | 2021 | 10 | | 74444000439498 | 32222001169450 | | | Valley Voice Rural Lifestyles | |
A | B | C | D | E | F |
Title | POL | WN Holding | ATL Holding | PROD/SAND | SIGNED OFF |
Upper Clutha Messenger | 166395-ilsdb | 22195001140002836 | 22195001140002800 | PROD | Y |
Valley Voice Rural Lifestyles | POL-111795 | 22336002950002800 | 22336002940002800 | PROD | Y |
Solution:
Not all of our libraries use the same item policy
Add item policy override
Script Development
User Input Spreadsheet
Title Lookup Spreadsheet
A | B | C | D | E |
Title | POL | Holdings ID | PROD/SAND | SIGNED OFF |
Upper Clutha Messenger | 166395-ilsdb | 22195001140002836 | PROD | Y |
Valley Voice Rural Lifestyles | POL-111795 | 22336002950002800 | PROD | Y |
A | B | C | D | E | F | G | H | I | J | K | L |
POL | Volume | Number | Issue | Year | Month | Day | Barcode | PublicNote | InternalNote | Title | Informal notes |
POL-232515 | 42 | 40 | | 2020 | 10 | 7 | 74444000339541 | | | Upper Clutha Messenger | |
125321-2 | | | | 2021 | 10 | | 74444000439498 | | | Valley Voice Rural Lifestyles | |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Volume | Number | Issue | Year | Month | Day | Barcode | Item Policy (blank=02) | PublicNote | InternalNote | Title | Informal notes |
POL-232515 | 42 | 40 | | 2020 | 10 | 7 | 74444000339541 | 20 | | | Upper Clutha Messenger | |
125321-2 | | | | 2021 | 10 | | 74444000439498 | | | | Valley Voice Rural Lifestyles | |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | Volume | Number | Issue | Year | Month | Day | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
125321-2 | Valley Voice Rural Lifestyles | 74444000439498 | | | | 2021 | 10 | | | | | |
What about those descriptions?
Script Development
User Input Spreadsheet
Working Description Output | |
v. 42, no. 40 (2020 10 07) | |
| |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | Volume | Number | Issue | Year | Month | Day | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | winter | | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | Volume | Number | Issue | Year | Month | Day | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | winter | | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | Volume | Number | Issue | Year | Month | Day | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | winter | | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | |
Working Description Output | |
v. 42, no. 40 (2020 10 07) | |
v. 167 (2021 winter) | |
| |
| |
Working Description Output | |
v. 42, no. 40 (2020 10 07) | |
v. 167 (2021 winter) | |
v. 40, no. 2 (2020) | |
| |
Working Description Output | Harvard’s Desired Output |
v. 42, no. 40 (2020 10 07) | v.42:no.40(2020:Oct. 7) |
v. 167 (2021 winter) | |
v. 40, no. 2 (2020) | |
| |
Working Description Output | Harvard’s Desired Output |
v. 42, no. 40 (2020 10 07) | v.42:no.40(2020:Oct. 7) |
v. 167 (2021 winter) | no.167(2021:hiver) |
v. 40, no. 2 (2020) | |
| |
Working Description Output | Harvard’s Desired Output |
v. 42, no. 40 (2020 10 07) | v.42:no.40(2020:Oct. 7) |
v. 167 (2021 winter) | no.167(2021:hiver) |
v. 40, no. 2 (2020) | Jahrg.40:Heft 2(2020) |
| |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | Volume | Number | Issue | Year | Month | Day | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | winter | | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | |
What about those descriptions?
Solution:
Part 1: Update enum and chron fields
Script Development
User Input Spreadsheet
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | Volume | Number | Issue | Year | Month | Day | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | winter | | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | enum_a | enum_b | enum_c | chron_i | chron_j | chron_k | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | winter | | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | enum_a | enum_b | enum_c | chron_i | chron_j | chron_k | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | 24 | | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | |
What about those descriptions?
Solution:
Part 2: Update description formatting
Script Development
User Input Spreadsheet
Working Description Output | Harvard’s Desired Output |
v. 42, no. 40 (2020 10 07) | v.42:no.40(2020:Oct. 7) |
v. 167 (2021 24) | no.167(2021:hiver) |
v. 40, no. 2 (2020) | Jahrg.40:Heft 2(2020) |
| |
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | enum_a | enum_b | enum_c | chron_i | chron_j | chron_k | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | 24 | | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | |
v.X, no.X, iss.X (YYYY MM DD)
v.X:no.X:iss.(YYYY:MM DD)
v.X:no.X:iss.(YYYY:Mo./Season [D]D)
Working Description Output | Harvard’s Desired Output |
v.42:no.40(2020:10 07) | v.42:no.40(2020:Oct. 7) |
v.167(2021 24) | no.167(2021:hiver) |
v.40:no.2(2020) | Jahrg.40:Heft 2(2020) |
| |
Working Description Output | Harvard’s Desired Output |
v.42:no.40(2020:Oct. 7) | v.42:no.40(2020:Oct. 7) |
v.167(2021:winter) | no.167(2021:hiver) |
v.40:no.2(2020) | Jahrg.40:Heft 2(2020) |
| |
What about those descriptions?
Solution:
Part 3: Add Description Override Field
Script Development
A | B | C | D | E | F | G | H | I | J | K | L | M |
POL | Title | Barcode | enum_a | enum_b | enum_c | chron_i | chron_j | chron_k | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | 24 | | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | |
Working Description Output | Harvard’s Desired Output |
v.42:no.40(2020:Oct. 7) | v.42:no.40(2020:Oct. 7) |
no.167(2021:hiver) | no.167(2021:hiver) |
Jahrg.40:Heft 2(2020) | Jahrg.40:Heft 2(2020) |
| |
A | B | C | D | E | F | G | H | I | J | K | L | M | N |
POL | Title | Barcode | enum_a | enum_b | enum_c | chron_i | chron_j | chron_k | description override | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | 24 | | no.167(2021:hiver) | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | Jahrg.40:Heft 2(2020) | | | | |
Working Description Output | Harvard’s Desired Output |
v.42:no.40(2020:Oct. 7) | v.42:no.40(2020:Oct. 7) |
v.167(2021:winter) | no.167(2021:hiver) |
v.40:no.2(2020) | Jahrg.40:Heft 2(2020) |
| |
What about those descriptions?
Solution:
Part 4: Take Captions from holdings 853
Script Development
Working Description Output | Harvard’s Desired Output |
v.42:no.40(2020:Oct. 7) | v.42:no.40(2020:Oct. 7) |
no.167(2021:hiver) | no.167(2021:hiver) |
Jahrg.40:Heft 2(2020) | Jahrg.40:Heft 2(2020) |
| |
A | B | C | D | E | F | G | H | I | J | K | L | M | N |
POL | Title | Barcode | enum_a | enum_b | enum_c | chron_i | chron_j | chron_k | description override | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | 24 | | no.167(2021:hiver) | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | Jahrg.40:Heft 2(2020) | | | | |
853 20 |8 1 |9 1 |a Jahrg. |b Heft |u 2 |v r |i (year) |w f |x 02 |y pm07,12
A | B | C | D | E | F | G | H | I | J | K | L | M | N |
POL | Title | Barcode | enum_a | enum_b | enum_c | chron_i | chron_j | chron_k | description override | Item Policy (blank=02) | PublicNote | InternalNote | Informal notes |
POL-232515 | Upper Clutha Messenger | 74444000175852 | 42 | 40 | | 2020 | 10 | 7 | | | | | |
565490-1 | Continuité | 74444000439498 | 167 | | | 2021 | 24 | | no.167(2021:hiver) | | | | |
160391-1 | Jahrbuch für Regionalwissenschaft | 32044149291346 | 40 | 2 | | 2020 | | | | | | | |
Problems & Solutions
Script Development
Multiple POLs on bib records Only adding one barcode Different item policies NISO/ANSI Descriptions Unconventional descriptions Items with no barcodes | Look up by POL instead of MMS ID, remove MMS ID column Remove column from spreadsheet, update references in script Add item policy override column Update Description script to use month/season abbreviations Pull captions from most recent 853 subfields |a, |b, |c Format descriptions to fit standard description Add Description override column Adjust script to accept no barcode and not re-try Count items without barcodes to confirm that sheet is done |
Multiple POLs on bib records Only adding one barcode Different item policies NISO/ANSI Descriptions Unconventional descriptions Items with no barcodes | Look up by POL instead of MMS ID, remove MMS ID column Remove column from spreadsheet, update references in script Add item policy override column Update Description script to use month/season abbreviations Pull captions from most recent 853 subfields |a, |b, |c Format descriptions to fit standard description Add Description override column Adjust script to accept no barcode and not re-try Count items without barcodes to confirm that sheet is done |
Multiple POLs on bib records Only adding one barcode Different item policies NISO/ANSI Descriptions Unconventional descriptions Items with no barcodes | Look up by POL instead of MMS ID, remove MMS ID column Remove column from spreadsheet, update references in script Add item policy override column Update Description script to use month/season abbreviations Pull captions from most recent 853 subfields |a, |b, |c Format descriptions to fit standard description Add Description override column Adjust script to accept no barcode and not re-try Count items without barcodes to confirm that sheet is done |
How it works
For row in sheet:
POL in Title Look-Up sheet?
yes
no
Use POL to find holdings ID, add to Title Look-Up
Barcode already logged?
Skip barcode
Barcode in Alma?
yes
yes
no
Get captions from holdings field 853 subfields |a, |b, |c
Add item, include (1st pass):
If barcode included (2nd pass):
no
If any barcoded items were not added, try again (up to 3 x total)
Workflow
Referencing Alma to populate the spreadsheet workflow:
Search
Search Alma using persistent search:
Order lines:All
Find the POL with Waiting for Renewal status
Read Notes
Read the receiving note for any special processing instructions
Copy & Paste
Alma Spreadsheet
Alma label
Item description
Update spreadsheet with the enumeration and chronology based on item in hand
barcode
Scan a barcode to spreadsheet, if needed
Find Item Description
In Alma, Click Items Received to bring you to the List of Items to view correct item description info.
Searching for titles and info in Alma to add to a spreadsheet is not necessarily faster than receiving predicted items in Alma.
Real time savings when:
Workflow
What we learned
Began testing in March 2021; caught up on the majority of the backlog by June 2021
The ultimate takeaway from the Production test was the same as the Sandbox test: the most time consuming part of the process was searching Alma for title and issue information
Using the data from the spreadsheets that had already been created and processed, we created a master reference spreadsheet for all the Design library titles, allowing us to skip the Alma searching step of the workflow
Workflow
Alma Production testing
Master reference spreadsheet creation
Workflow
Workflow
The spreadsheet is constantly evolving, and is updated when a new title is added or the enumeration/chronology for a title changes.
Search
Search master reference spreadsheet with piece in hand by title or ISSN
Read Notes
Once the correct title is located, read the receiving note and any special processing instructions
Copy & Paste
Copy the item information line, and paste it into the input spreadsheet
Barcode
Scan a barcode, if needed, and then you’re done!
Update
Update the enumeration and chronology, notes, and item policy for the title based on the columns that are filled out in the master spreadsheet
Master reference spreadsheet workflow:
We are currently:
This process is only used in a limited capacity, and it hasn’t replaced regular receiving in Alma for the majority of titles and libraries.
Current Applications
JETS is an Ebsco service that provides direct to destination processing for serial issues
Future Uses
Drawbacks to the API spreadsheet method:
Workflow
Questions?