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