Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel6
outlinefalse
typelist
separatorbrackets
printabletrue

...

Once those checks are received, the request is stored with DCB and then goes through a largely deterministic sequence:

  1. Preliminary States - ensure we have good data to propagate requests in downstream systems

    1. SUBMITTED_TO_DCB

    2. PATRON_VERIFIED

    3. RESOLVED

  2. Circulation Tracking - to track and synchronise downstream systems

    1. REQUEST_PLACED_AT_SUPPLYING_AGENCY

    2. CONFIRMED

    3. REQUEST_PLACED_AT_BORROWING_AGENCY

    4. PICKUP_TRANSIT

    5. RECEIVED_AT_PICKUP

    6. READY_FOR_PICKUP

    7. LOANED

    8. RETURN_TRANSIT

  3. Finishing States - to terminate and clean up traces of finished requests where possible

    1. Preliminary Finishing

      1. NOT_SUPPLIED_CURRENT_SUPPLIER

      2. NO_ITEMS_AVAILABLE_AT_ANY_AGENCY

    2. Circulation FInishing

      1. CANCELLED

    3. Happy Path Finishing

      1. COMPLETED

      2. FINALISED

    4. Unexpected Termination

      1. ERROR

...

DCB STATE

Max backoff / Next Poll interval / Next Step

DEV / TEST

Max backoff / Next Poll interval / Next Step

LIVE

Status
titleNOT USED

What tracking for next step in 2l process

What tracking for next step in 3l process

SUBMITTED_TO_DCB

None

None

Auto Triggers ValidatePatronTransition

Moves us to PATRON_VERIFIED

PATRON_VERIFIED

None

None

Auto Triggers PatronRequestResolutionStateTransition

Moves us to RESOLVED

RESOLVED

None

None

Auto Triggers PlacePatronRequestAtSupplyingAgencyStateTransition

Moves us to REQUEST_PLACED_AT_SUPPLYING_AGENCY

...

DCB STATE

Max backoff / Next Poll interval / Next Step

DEV / TEST

Max backoff / Next Poll interval / Next Step

LIVE

Status
titleNOT USED

What tracking for next step in 2l process

What tracking for next step in 3l process

REQUEST_PLACED_AT_SUPPLYING_AGENCY

10ms

10ms

wait for SupplierRequest= CONFIRMED | TRANSIT → HandleSupplierRequestConfirmed

Moves us into the CONFIRMED state

CONFIRMED

10m

10m

Auto Triggers

PlacePatronRequestAtBorrowingAgencyStateTransition

Moves us to REQUEST_PLACED_AT_BORROWING_AGENCY

REQUEST_PLACED_AT_BORROWING_AGENCY

10m

1h

wait for SupplyingItem State = TRANSIT ->

HandleSupplierInTransit

Moves us to PICKUP_TRANSIT

PICKUP_TRANSIT

10m

1h

wait for BorrowingItem = RECEIVED | LOANED | ON_HOLD_SHELF Then

HandleBorrowerItemReceived moves us to RECEIVED_AT_PICKUP

RECEIVED_AT_PICKUP

10m

1h

wait for BorrowingItem = ON_HOLD_SHELF | LOANED

Then

HandleBorrowerItemOnHoldShelf moves us to READY_FOR_PICKUP

READY_FOR_PICKUP

10m

1h

wait for BorrowingItem = LOANED Then

HandleBorrowerItemLoaned moves us to LOANED

LOANED

10m

6h

wait for BorrowingItem = AVAILABLE | TRANSIT OR SupplierItem=AVAILABLE | SupplierRequest=CLOSED Then

HandleBorrowerRequestReturnTransit moves us to RETURN_TRANSIT

N.b. CLOSED==FOLIO Specific

N.b. Additional check needed here - item loaned other

RETURN_TRANSIT

10m

1h

SupplierItem = AVAILABLE | SupplierRequest=CLOSED Then

HandleSupplierItemAvailable moves us to COMPLETED

N.b. CLOSED==FOLIO Specific

N.b. Additional check needed here - item loaned other

Finishing States

When a request completes its cycle, or if it terminates prematurely, it enters a finishing state.

...