[OPEN-ILS-GENERAL] Fulfillment Prioritization

Thomas Berezansky tsbere at mvlc.org
Fri Mar 9 17:04:14 EST 2012


There is a desire for copies to fill local holds before going into  
transit, even when there are already copies in transit. This would  
result in copies showing up to fill holds that are already filled, but  
would also allow for holds to go to the hold shelf faster when a copy  
is already right there.

I have worked out the following thoughts for this, but would like more  
opinions before work is started on it.

The general idea would be to add a new Org Unit setting to control the  
behavior. When enabled copies returned to the library would:

1 - Look for non-captured holds at the current location. If any exist,  
capture for them and move on to the hold shelf.
2 - Look for captured but in transit holds at the current location. If  
any exist, "hijack" that hold and move on to the hold shelf. The  
original copy will remain in transit.
3 - Resume all other holds/transit/reshelving/etc code normally.

This may require teaching the hold targeter to update the list of  
copies *without* wiping the captured state of in-transit holds,  
perhaps with a special parameter passed in. That parameter may be best  
supplied when doing the "Retarget Local Holds" checkin modifier work,  
rather than as part of normal hold targeting. Especially if the first  
additional limitation below is included.

I am thinking that there may need to be additional limitations, for  
sanity purposes, but am not sure about them:

1 - Limit to copies owned by the library that the checkin is happening at.

This would basically prioritize local copies as filling local holds,  
but would not prevent someone else's copy from transiting. That  
transit may even be back to their own library.

2 - Not run the code if capturing local holds as transits.

Because otherwise you may just be displacing things that are  
intentionally in a limbo-transit state.

3 - Require a checkin modifier be active, which may remove the need for YAOUS.

If replacing the YAOUS then this would allow for per-workstation  
decisions. If alongside the YAOUS then the YAOUS being disabled could  
be used to hide the checkin modifier outright. Either way SIP may need  
to be taught how to (optionally) enable this modifier.

4 - In the event of a Force or Recall hold being in the stack, *never*  
fill a different hold instead.

These are copy level "force cut in line because we have a really good  
reason" holds in Master/2.2, and I don't think we should avoid  
transiting to fill them.

Thomas Berezansky
Merrimack Valley Library Consortium






More information about the Open-ils-general mailing list