Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Preliminary States - ensure we have good data to propagate requests in downstream systems
SUBMITTED_TO_DCB
PATRON_VERIFIED
RESOLVED
Circulation Tracking - to track and synchronise downstream systems
REQUEST_PLACED_AT_SUPPLYING_AGENCY
CONFIRMED
REQUEST_PLACED_AT_BORROWING_AGENCY
PICKUP_TRANSIT
RECEIVED_AT_PICKUP
READY_FOR_PICKUP
LOANED
RETURN_TRANSIT
Finishing States - to terminate and clean up traces of finished requests where possible
Preliminary Finishing
NOT_SUPPLIED_CURRENT_SUPPLIER
NO_ITEMS_AVAILABLE_AT_ANY_AGENCY→ NO_ITEMS_SELECTABLE_AT_ANY_AGENCY
Circulation FInishingFinishing
CANCELLED
Happy Path Finishing
COMPLETED
FINALISED
Unexpected Termination
ERROR
...
DCB STATE | Max backoff / Next Poll interval / Next Step
| Max backoff / Next Poll interval / Next Step
| title | NOT USEDWhat tracking for next step in 2l process | What tracking for next step in 3l process | |
---|---|---|---|---|---|---|
None | None | Auto Triggers ValidatePatronTransition Moves us to PATRON_VERIFIED | ||||
None | None | Auto Triggers PatronRequestResolutionStateTransition Moves us to RESOLVED | ||||
None | None | Auto Triggers PlacePatronRequestAtSupplyingAgencyStateTransition Moves us to REQUEST_PLACED_AT_SUPPLYING_AGENCY |
...
DCB STATE | Max backoff / Next Poll interval / Next Step
| Max backoff / Next Poll interval / Next Step
| title | NOT USEDWhat 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 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.
...
DCB STATE | Max backoff / Next Poll interval / Next Step
| Max backoff / Next Poll interval / Next Step
| ||
---|---|---|---|---|
| What tracking for next step in 2l process | What tracking for next step in 3l process | ||
Preliminary Finishing (follows a preliminary state before a request enters tracked circulation) | ||||
NOT_SUPPLIED_CURRENT_SUPPLIER | None | None | Auto Triggers: ResolveNextSupplierTransition Moves us to NO_ITEMS_AVAILABLESELECTABLE_AT_ANY_AGENCY | |
NO_ITEMS_AVAILABLE_AT_ANY_AGENCY → NO_ITEMS_SELECTABLE_AT_ANY_AGENCY | None | None | TERMINAL STATE (For now) | |
Circulation Finishing (interrupts tracked circulation, and is typically manually instigated) | ||||
CANCELLED | None | None | Auto Triggers: FinaliseRequestTransition moves us to FINALISED | |
Happy Path Finishing (follows directly after the end of tracked circulation) | ||||
COMPLETED | None | None | Auto Triggers: FinaliseRequestTransition moves us to FINALISED | |
FINALISED | None | None | TERMINAL STATE | TERMINAL STATE |
Unexpected Termination (can happen at any stage) | ||||
ERROR | None | None | TERMINAL STATE | TERMINAL STATE |
...
Reduced from 60s to 10ms rather than as 0s appears to be treated as effectively terminating.
Jira Legacy server System Jira serverId a6f93653-ee50-3e81-88ad-29eb84ada35c key DCB-1243 DCB-1289 Generalise transition to FINALISE and apply to CANCELLED to extend cleanup
Jira Legacy server System Jira serverId a6f93653-ee50-3e81-88ad-29eb84ada35c key DCB-1230 Default to production interval timings
Roll back
Jira Legacy server System Jira serverId a6f93653-ee50-3e81-88ad-29eb84ada35c key DCB-1517
DCB-1102 RenameStatus colour Purple title DATE TBC NO_ITEMS_AVAILABLE_AT_ANY_AGENCY
toNO_ITEMS_SELECTABLE_AT_ANY_AGENCY