The RF pick journey: stops on a cart route
What this shows. How the operator walks the route of a cart: next stop, the same proofs as a discrete pick, then the scan of the position's box, and the three ways to leave a stop (skip, short, reject).
Reading the diagram
- The route order is: stops not skipped first, by
Route Sequenceof the location (empty last), then location code, then source (owner, SKU, source LPN, lot), then pick id. Skipped stops come after, oldest skip first. - After every route command the assignment version goes up. The status becomes
Pickingon the first one (fromReady). It becomesDeliveringas soon as no live member pick isReleased. pick_commiton a member pick needs the box code. The code must be the box of that position, and the box must stand directly on the cart. Wrong box:WRONG_TARGET. No box:TARGET_REQUIRED. A pallet id on a cart pick:DROP_ID_ON_ASSIGNMENT_PICK.- A commit moves the whole cart tree to the location of the pick (the carrier follows the operator).
- A short with 0 found deposits nothing, needs no box and does not move the cart. With some found, the box is scanned like a commit.
pick_assignment_skipnever touches the task: no lease change, no status. The pick's source proof is dropped. The operator proves it again when the stop comes back.pick_rejectis allowed only before anything is picked. The pick first leaves the assignment, then the task returns to the pool asRefusedwith a cooldown. The refusal counter goes up, andAllow Task Releaseof the area can forbid it.- With
Quantity=Aggregated, consecutive stops of one source in one location become one summary step:AggregatedPick. A skip or reject there takes the whole group. A commit and a short still go one place at a time, each into its own box. - A position whose box was closed full and whose repair failed holds its picks. Every route command and the delivery refuse with
CARTON_REPLAN_REQUIREDuntil the operator hands the picks over. See Box full.
Where it comes from
| What | Source |
|---|---|
| Route order | crates/libs/wms-outbound/src/domain/pick_assignment/route.rs:26-47 |
| Grouping of stops into one step | crates/libs/wms-outbound/src/domain/pick_assignment/route.rs:56-115 |
| Route command checks | crates/libs/wms-outbound/src/domain/pick_assignment/route.rs:120-300 |
| Deposit into the position's box | crates/libs/wms-outbound/src/picking/deposit/direct_to_target.rs:1-125 |
| Choose pallet or box | crates/libs/wms-outbound/src/picking/deposit/mod.rs:60-105 |
| Skip | crates/libs/wms-outbound/src/picking/commands/skip.rs:1-60 |
| Reject inside an assignment | crates/libs/wms-outbound/src/picking/commands/reject.rs:1-60 and :130-200 |
| Short inside an assignment | crates/libs/wms-outbound/src/picking/commands/short.rs:1-30 |
Delivering and Picking flip | crates/libs/wms-lib-core/src/model/outbound/pick_assignment.rs:840-880 |
| RF screens and their calls | crates/libs/wms-lib-sql/sql/rf-screens/096_uc_pick_route.sql, crates/libs/wms-lib-sql/sql/rf-screens/110_uc_pick_aggregated_cart.sql, crates/libs/wms-lib-sql/sql/rf-screens/112_uc_pick_aggregated_cart_followups.sql |