Requests - Data Structures

Note - title level requesting is currently under development - this document addresses data structures for item level requesting, since that is what is implemented in FOLIO as of Juniper. 


Requests data is stored in mod-circulation-storage, and the relevant JSON schemas can be found here: https://github.com/folio-org/mod-circulation-storage/tree/master/ramls

Required fields

  • itemId;

  • requesterId;

  • requestType

  • requestDate
  • fulfilmentPreference


System-hardcoded fields

  • Request type
    • Types are determined by the circulation rule request policy that applies to the particular transaction - hold, page, or recall.
      • In general, a hold is used for an item that's in use by someone else but where you can't force it to come back early, a recall is for an item that's in use by someone else but you CAN force it to come back early, and a page is for an item that's currently on the shelf. There is a wiki page that describes the hard coded behavior of the three request types here: Request Type Whitelist Table - behavior of Recall, Hold and Page
  • fulfilmentPreference
    • enumerated - "Hold Shelf" or "Delivery"
  • Request Status is hard coded and can be one of eight values:
    • "Open - Not yet filled",
      • This is the status when a request is first created - if the item the patron wants has a status of "Available", then its status will be changed to "Paged".
    • "Open - Awaiting pickup",
      • This is the status that the request gets when the associated requester is first in line for the item, and the item has been discharged at the patron's requested service point pickup location. 
    • "Open - In transit",
      • This is the status that the request gets when the associated requester is first in line for the item, and the item has been discharged at a service point that is NOT the patron's requested service point pickup location. The assumption is that the item is on its way to them - the item gets a status of In Transit. 
    • "Open - Awaiting delivery",
      • This is the status that the request gets when the associated requester is first in line for the item, and the item has been discharged at any service point. Note that there is development that needs to happen to allow delivery requests to be routed to specific points — see UXPROD-2429 - Getting issue details... STATUS for more info
    • "Closed - Filled",
      • The item was checked out by the requested patron. 
    • "Closed - Cancelled",
      • The request was cancelled prior to it being fulfilled.
    • "Closed - Unfilled",
      • The request has passed the request expiration date without the item being available to put on hold for the patron.
    • "Closed - Pickup expired"
      • The request has passed the hold pickup expiration date without the patron picking up the item.
      • Note that hold shelf periods are configured on the service point - the time frame will be set according to the settings for the pickup service point when the request is put on hold