• Subject to Change
  • DCB-825 DCB-826 Implement FOLIO Circulation Lifecycle

    References

    Jira Ticket

    FOLIO Reference:

    Related Documentation

    Request Workflow Transitions

    • Preconditions and assumptions:

      • a patron request has been placed in DCB

      • DCB detects a change in item status

    • Trigger conditions (Given) indicates to DCB that the event has happened

    • Event conditions (When)indicate conditions met when DCB Patron Request Workflow polls library systems connected with the request

    • Actions and reaction (Then) descriptions apply to DCB and FOLIO systems.

    FOLIO as a Supplying Library

    Lifecycle

    Given

    When

    Then

    Lifecycle

    Given

    When

    Then

    1. Dispatched by Supplying Library

    • DCB Patron Request exists in status REQUEST_PLACED_AT_BORROWING_AGENCY

     

    DCB Patron Request Workflow matches corresponding request details at

    • FOLIO Supplying Library

      • transaction state = OPEN

    Trigger DCB HandleSupplierInTransit event to change

    • FOLIO Borrowing or Pickup Library

      • transaction state = OPEN

    • DCB

      • PatronRequest.PICKUP_TRANSIT

      • HostLmsItem.ITEM_PICKUP_TRANSIT

    1. Received at Pickup Library

    • DCB Patron Request exists

      • with corresponding HostLmsItem.ITEM_PICKUP_TRANSIT

    DCB Patron Request Workflow matches corresponding request details at

    • FOLIO Pickup Library

      • transaction state = AWAITING_PICKUP

    Trigger HandleBorrowerItemOnHoldShelf event to change

    • FOLIO Supplying or Borrowing Library

      • transaction state =AWAITING_PICKUP

    • DCB

      • PatronRequest.READY_FOR_PICKUP

      • HostLmsItem.ITEM_ON_HOLDSHELF

    1. Item Checked Out to Patron at Pickup Library

    • DCB Patron Request exists

      • with corresponding HostLmsItem.ITEM_ON_HOLDSHELF

    DCB Patron Request Workflow matches corresponding request details at

    • FOLIO Pickup Library

      • transaction state = ITEM_CHECKED_OUT

    Trigger HandleBorrowerItemLoaned event to change

    • FOLIO Borrowing or Supplying Library

      • transaction state = ITEM_CHECKED_OUT

    • DCB

      • PatronRequest.LOANED

      • HostLmsItem.ITEM_LOANED

    1. Item Returned by Borrowing Patron

    • DCB Patron Request exists in status

      • with corresponding HostLmsItem.ITEM_LOANED

    DCB Patron Request Workflow matches corresponding request details at either

    • FOLIO Pickup or Borrowing Library

      • transaction state = ITEM_CHECKED_IN

    Trigger HandleBorrowerRequestReturnTransit event to change at

    • FOLIO Borrowing or Pickup Library

      • transaction state = ITEM_CHECKED_IN
        -------------------

      • loan status = Closed

      • virtual item status = In transit

    • DCB

      • PatronRequest.RET-TRANSIT

      • HostLmsItem.ITEM_RETURNED

    1. Received Back at Lending Agency

    • DCB Patron Request exists in status

      • with corresponding HostLmsItem.ITEM_RETURNED

    DCB Patron Request Workflow matches corresponding request details at either

    • FOLIO Supplying Library

      • transaction state = CLOSED

    Trigger HandleBorrowerRequestReturnTransit event to change

    • FOLIO Borrowing or Pickup Library

      • transaction state = CLOSED

    • DCB

      • PatronRequest.COMPLETED

      • HostLmsItem.ITEM_AVAILABLE

      • Local status on supplier request changed to AVAILABLE

    FOLIO as a Borrowing_Pickup Library

    Lifecycle

    Given

    When

    Then

    Lifecycle

    Given

    When

    Then

    1. Dispatched by Supplying Library

    • DCB Patron Request exists in status REQUEST_PLACED_AT_BORROWING_AGENCY

     

    DCB Patron Request Workflow matches corresponding request details at

    • FOLIO Supplying Library

      • transaction status = open

    Trigger DCB HandleSupplierInTransit event to change

    • FOLIO Borrowing Library

    • FOLIO Pickup Library

    • DCB

      • PatronRequest.PICKUP_TRANSIT

      • HostLmsItem.ITEM_PICKUP_TRANSIT

    1. Received at Pickup Library

    • DCB Patron Request exists

      • with corresponding HostLmsItem.ITEM_PICKUP_TRANSIT

    DCB Patron Request Workflow matches corresponding request details at

    • FOLIO Pickup Library

      • item status = Awaiting Pickup

    Trigger HandleBorrowerItemOnHoldShelf event to change

    • FOLIO Supplying Library

      • item status = Awaiting Pickup

      • request

    • FOLIO Borrowing Library

      • virtual item status = Awaiting Pickup

      • request

    • DCB

      • PatronRequest.ON_HOLD_SHELF

      • HostLmsItem.ITEM_ON_HOLDSHELF

    1. Item Checked Out to Patron at Pickup Library

    • DCB Patron Request exists

      • with corresponding HostLmsItem.ITEM_ON_HOLDSHELF

    DCB Patron Request Workflow matches corresponding request details at

    • FOLIO Pickup Library

      • virtual item status = Checked out

    Trigger HandleBorrowerItemLoaned event to change

    • FOLIO Borrowing Library

      • virtual item status = Checked out

      • request

    • FOLIO Supplying Library

      • item status = Checked out

      • request

    • DCB

      • PatronRequest.LOANED

      • HostLmsItem.ITEM_LOANED

    1. Item Returned by Borrowing Patron

    • DCB Patron Request exists in status

      • with corresponding HostLmsItem.ITEM_LOANED

    DCB Patron Request Workflow matches corresponding request details at either

    • FOLIO Pickup or Borrowing Library

      • virtual item status = In transit

    Trigger HandleBorrowerRequestReturnTransit event to change

    • FOLIO Borrowing or Pickup Library

      • virtual item status = In transit

      • request

    • FOLIO Supplying Library

      • item status = Checked out

      • request

    • DCB

      • PatronRequest.RET-TRANSIT

      • HostLmsItem.ITEM_TRANSIT or HostLmsItem.ITEM_RETURNED

    1. Received Back at Lending Agency

    • DCB Patron Request exists in status

      • with corresponding HostLmsItem.ITEM_RETURNED

    DCB Patron Request Workflow matches corresponding request details at either

    • FOLIO Supplying Library

      • item status = Available

    Trigger HandleBorrowerRequestReturnTransit event to change

    • FOLIO Borrowing or Pickup Library

      • virtual item status = Available

      • request

    • FOLIO Supplying Library

      • item status = Checked out

      • request

    • DCB

      • PatronRequest.COMPLETED

      • HostLmsItem.ITEM_AVAILABLE

     

    FOLIO as a Pickup Library

     

    Lifecycle

    Given

    When

    Then

    Lifecycle

    Given

    When

    Then

    1. Dispatched by Supplying Library

    • DCB Patron Request exists in status REQUEST_PLACED_AT_BORROWING_AGENCY

     

    DCB Patron Request Workflow matches corresponding request details at

    • FOLIO Supplying Library

      • transaction status = open

    Trigger DCB HandleSupplierInTransit event to change

    • FOLIO Borrowing Library

    • FOLIO Pickup Library

    • DCB

      • PatronRequest.PICKUP_TRANSIT

      • HostLmsItem.ITEM_PICKUP_TRANSIT

    1. Received at Pickup Library

    • DCB Patron Request exists

      • with corresponding HostLmsItem.ITEM_PICKUP_TRANSIT

    DCB Patron Request Workflow matches corresponding request details at

    • FOLIO Pickup Library

      • item status = Awaiting Pickup

    Trigger HandleBorrowerItemOnHoldShelf event to change

    • FOLIO Supplying Library

      • item status = Awaiting Pickup

      • request

    • FOLIO Borrowing Library

      • virtual item status = Awaiting Pickup

      • request

    • DCB

      • PatronRequest.ON_HOLD_SHELF

      • HostLmsItem.ITEM_ON_HOLDSHELF

    1. Item Checked Out to Patron at Pickup Library

    • DCB Patron Request exists

      • with corresponding HostLmsItem.ITEM_ON_HOLDSHELF

    DCB Patron Request Workflow matches corresponding request details at

    • FOLIO Pickup Library

      • virtual item status = Checked out

    Trigger HandleBorrowerItemLoaned event to change

    • FOLIO Borrowing Library

      • virtual item status = Checked out

      • request

    • FOLIO Supplying Library

      • item status = Checked out

      • request

    • DCB

      • PatronRequest.LOANED

      • HostLmsItem.ITEM_LOANED

    1. Item Returned by Borrowing Patron

    • DCB Patron Request exists in status

      • with corresponding HostLmsItem.ITEM_LOANED

    DCB Patron Request Workflow matches corresponding request details at either

    • FOLIO Pickup or Borrowing Library

      • virtual item status = In transit

    Trigger HandleBorrowerRequestReturnTransit event to change

    • FOLIO Borrowing or Pickup Library

      • virtual item status = In transit

      • request

    • FOLIO Supplying Library

      • item status = Checked out

      • request

    • DCB

      • PatronRequest.RET-TRANSIT

      • HostLmsItem.ITEM_TRANSIT or HostLmsItem.ITEM_RETURNED

    1. Received Back at Lending Agency

    • DCB Patron Request exists in status

      • with corresponding HostLmsItem.ITEM_RETURNED

    DCB Patron Request Workflow matches corresponding request details at either

    • FOLIO Supplying Library

      • item status = Available

    Trigger HandleBorrowerRequestReturnTransit event to change

    • FOLIO Borrowing or Pickup Library

      • virtual item status = Available

      • request

    • FOLIO Supplying Library

      • item status = Checked out

      • request

    • DCB

      • PatronRequest.COMPLETED

      • HostLmsItem.ITEM_AVAILABLE

    Unknowns

    unknown blocking workaround with expected consequences resolved

    • Borrowing vs Pickup Agency - differences for three-legged transactions

    • Map DCB transaction status to FOLIO status

     

    Operated as a Community Resource by the Open Library Foundation