Picking Overview
This page explains what picking decides, in which order the system applies your settings, and how a pick task is built, handed out and finished. Two worked examples follow: a discrete pick and a cart (carrier) pick.
The settings themselves are in four sibling pages:
| Page | What it lists |
|---|---|
21-picking-policy-settings.md | Every field of a picking policy. |
22-work-areas-equipment-and-permissions.md | Work areas, pack stations, equipment, operator rights, task manager rules. |
23-pick-short-reasons.md | Short reasons and their actions. |
24-inventory-count-policy.md | Counts, cycle count policy, count triggers. |
Paths in "Affects" lines are relative to crates/libs/.
1. What picking decides
Picking answers these questions. Each question has an owner (the setting that answers it).
| Question | Answered by | Page |
|---|---|---|
| Which stock is reserved for a pick? | Allocation policy (not on these pages). | 06-outbound-setup.md |
| Which box does the pick go into? | Cartonization policy (not on these pages). | 06-outbound-setup.md |
| Is a task made for the pick? | The order is released, and the cartonization result is "ready". | section 3 |
| Who may take the task? | Operator rights (Task Permissions), Pick Execution, work area zones. | 22 |
| Which task comes first? | Order priority, then Route Sequence of the location. | 22, section 8 |
| Can this machine lift it? | Equipment Max Weight and Weight Reduction per Level, zone exclusions. | 22 |
| One order onto a pallet, or several boxes on a cart? | The picking policy of the area for the operator's equipment. | 21 |
| What must the operator prove at the shelf? | The five Confirmation fields. | 21, section 7 |
| Where do the goods go? | The pick pallet, or the box on the cart position. | 21 |
| Where does the trip end? | Completion, the owner's delivery location, the pack station. | 21, 22 |
| What if the stock is not there? | The short reason the operator types. | 23 |
| Is the location counted afterwards? | Count triggers. | 24 |
| How long does the operator keep the task? | TASK_LEASE_TTL_MIN. | 22, section 7 |
2. The order in which the system applies the rules
When an operator asks for work, the system walks this list (wms-outbound/src/picking/commands/dispatch_next.rs, wms-tasks/src/service/candidate.rs). It stops at the first step that answers.
- Queue. One request per operator at a time.
- A live cart assignment of the operator is continued.
- A dissolved assignment whose carrier still carries goods and was never delivered is delivered first (
deliver your carrier with picked goods first). - Operator checks. The operator must be active.
- Entry. The old entry
Discrete Pick(PICK01,Get Pick Work) names no area, so it works asDISCRETEacross all areas the operator may pick in. The entryPick by Areanames an area (and equipment) and reads the policy of (area, equipment). A discrete pallet opened for work taken throughPick by Areais frozen to that policy when the pick stands in a zone of the area (section 1.2 of file 21). - Policy lookup. Equipment row of the area, else the area default, else
DISCRETE. - Carrier or not. If the policy says
Carrier Required, only an already held task is handed out; otherwise the RF is asked to scan a carrier. Else the single-task dispatch runs in the named area. - Held task first. The operator's own oldest open task is returned before the pool is looked at.
- Rights. Reachable zones = zones of areas where the operator has a right for the task type, minus the zones their equipment excludes. None:
you have no right to take Pick tasks in any work area — ask a supervisor. - Pool. Tasks in
Createdstatus, not escalated, not in cooldown, from a reachable zone, liftable. - Order. Priority, then location
Route Sequence, then oldest. - Source rules.
Pick Executionon, pickReleased, order released and open, locationOkand unflagged, no inventory hold, cartonization ready. A task that fails is skipped in this search only. - Assign. The first task that passes becomes
Assignedwith a lease.
When the operator then works the task, the system applies these rules in order:
- Instructions. If the SKU or the order line has a pick instruction, the operator must read it (
PICKINS,Pick Instructions). - Where the goods go. A discrete pick: the operator opens a pick pallet (
PICK03,Open Pallet). A cart pick: the box of the position. - Proof at the source. The plan from the five
Confirmationfields (PICK04toPICK06,PICK14,PICK15; cartPKA21toPKA23,PKA21L,PKA21A). - Commit. The system re-checks the stock, the lot expiry (it must be later than the warehouse day plus
Min Shelf Life on Pickof the SKU) and holds under the location lock. Then it moves the goods. - Count. If
Count an Emptied Locationis on and the location is empty, a count is requested. - End of trip. Discrete: close the pallet at its frozen destination (
PICK13,Close Pallet, key F2). Cart: deliver the cart perCompletion.
3. How a pick task is built
- An order is allocated. Allocation reserves stock and writes pick lines (picks) with status
Allocated. - Cartonization plans the boxes. A pick gets an outcome:
Planned(it goes into a planned carton),ShipAsIs(the factory package),Bypassed(no box planned),PendingorBlocked. - The order is released (
Releaseon the order). Release runs allocation again and then creates tasks (wms-outbound/src/service/order/allocate.rs:420-436). Only picks that are ready to execute get a task. A pick whose cartonization isPendingorBlockedgets none. If the order is not released, allocating makes no task. - For each such pick the system makes one task of type
Pick(wms-outbound/src/picking/infrastructure/tasks.rs):- source: the pick (
pick_detail); from_location: the pick location; it decides the zone and so the work area;to_location: thePicking To Locationof the zone of the pick location (zone field);- owner, SKU, lot, unit, quantity, container;
- weight: calculated from the pack weights of the SKU (unknown stays empty);
- priority: the priority of the order;
- status
Created, no operator. The pick becomesReleasedand carries the task id.
- source: the pick (
- The task has a snapshot of the pick. If the pick changes (another quantity, location or container) the task no longer matches and is refused at dispatch:
TASK_SNAPSHOT_MISMATCH. - A change of order priority is copied to the tasks that are still in the pool. Held tasks keep the priority the operator saw.
4. How a task is assigned
See section 2, steps 8 to 13, and 22-work-areas-equipment-and-permissions.md, section 8. The result: status Assigned, the operator's id, a lease of TASK_LEASE_TTL_MIN minutes (seed 15). Every scan and every commit renews the lease. A lease that ran out returns the task to the pool within about a minute (the reaper runs every 60 seconds).
For a cart the assignment takes all tasks of its cartons in one step or none. Two operators who start at once cannot get the same carton: the second is told the selection changed while it was being taken: press again.
5. How a task is executed
5.1 Discrete (pallet)
PICK01Get Pick Work: the operator enters the current location (optional) and presses Enter. Answer: the task, orNo eligible Pick work.PICK02Pick Work: location, item, quantity, lot display (the attributes marked "show on pick" in the SKU Lot Policy), instructions.PICK03Open Pallet: the operator scans a pallet label that starts withDRP. The pallet stands in the system locationINTRANSIT. An operator has at most one open pallet. A pallet that holds goods must be closed first:an open pallet must be closed first (F2): DRP1, order SO-1.- Proof steps as the plan asks.
PICK09Confirm Pick. The goods go onto the pallet. The first deposit freezes the destination of the pallet: the owner'sDelivery location (picker carrier), else theto_locationof the task. Its location type must be inPallet Drop Cell Types.- The pick card for the next pick of the same order and the same destination puts goods onto the same pallet. A pick of another order or another destination: the dispatch answers with the open pallet to close first (
drop_to_close). PICK13Close Pallet(F2): scan the pallet and exactly its frozen destination. The whole pallet moves out ofINTRANSIT. Wrong place:the pallet is closed only into the location it goes to — scan that location: the pallet goes to STAGE-1.- Another operator's pallet can be closed only with the right
pick_drop.close_foreignor a supervisor's permission.
5.2 Cart (carrier)
Pick by Area(PKAA), then the equipment (PKAE/PKAEL). The answer isScan Carrier(PKA01) when the policy needs a carrier.- Scan the carrier. The system builds an assignment of up to
min(Max Targets, positions of the cart type)whole planned targets. It claims all their tasks. The cart gets numbered positions. StatusBuilding. PKA02Prepare Carrier: for each position scan a box. The box must be an empty registered box, not on hold, of the planned type and big enough, and not on another cart. When the last position is bound the assignment isReady.- The route: stops by location
Route Sequenceascending. For each stop:PKA20Next Pick, the proof screens, thenPKA28Into Box(scan the position's box).PKA25Skipsends a stop to the end of the route.PKA26/PKA26Cshorts.PKA27rejects.PKA50Box FullandPKA51Box Damagedhandle box exceptions. StatusPicking. - When no stop is left the status is
Delivering.PKA30/PKA40Deliver Carrier. WithCompletion=Completethe boxes come off where the cart stands. WithConfirmAtLocationthe operator scans the delivery location. - A holder may dissolve the assignment before the first commit. After goods are picked only a supervisor may (
goods are already picked: only a supervisor may dissolve it).
6. Worked example 1: a discrete pick
Setup:
- Zone
RACKin areaPICK-A. Zone fieldPicking To Location=PICKTO. LocationsA-01-01(route0100) andA-02-03(route0230) are inRACK. - Operator
op1has aPickright inPICK-AwithPick Executionon. No equipment. - Policy
DISCRETEis unchanged (defaults). Pallet list: Pick-to, Sort station, Staging, Door. - The Lot Policy of both SKUs shows no attribute on the pick.
- Order
SO-1, priority 50, owner with no delivery location set. Line 1: 12 of SKUA(lotL1, loose atA-01-01). Line 2: 5 of SKUB(on palletLPN007atA-02-03).
Steps:
SO-1is allocated and released. Two tasks are made: task 701 (12 ofA, fromA-01-01, toPICKTO, priority 50) and task 702 (5 ofB, fromA-02-03, toPICKTO).op1opensPicking > Discrete Pick, presses Enter. Pool order: both priority 50; route0100before0230. Task 701 is assigned (lease 15 minutes).PICK02showsA-01-01,A, 12, lotL1.op1scans a new pallet labelDRP0001atPICK03. The pallet stands inINTRANSIT.- Proof (defaults): scan
A-01-01; scan the item.Ais loose in one lot:Loose Lot Source=Automaticfinds one lot in the location and no checkable attribute, so the location scan is the proof (already asked). No LPN is asked (no container). PICK09commits 12. The first deposit freezes the destinationPICKTO(zone chain; typePicktois in the list). The pallet now goes toPICKTO.- Task 702 is next. Same order, same destination
PICKTO: goods go ontoDRP0001. Proof: locationA-02-03, itemB, and the LPNLPN007(the source stands in a container, and bothReserved LPN=Scan when presentandAutomaticask for it). Lot: one lot on the pallet, soAutomaticis satisfied by the LPN. - At the end the RF shows the pallet to close.
op1presses F2, scansDRP0001andPICKTO. The pallet moves toPICKTO. Order statusPicked.
What changes if you change a setting:
Source Location=Display only: step 5 loses the location scan.Pallet Drop Cell TypeswithoutPickto: step 6 is refused:a closed pallet may not stand in the location this pick goes to: PICKTO (Pickto).Count an Emptied Location= Yes andA-01-01held exactly 12: after step 6 a count ofA-01-01is requested.- Untick
Pick Executionbefore step 2:No eligible Pick work.
7. Worked example 2: a cart (carrier) pick
Setup:
- Policy
CART4:Unit=PlannedTarget,Max Targets= 4,Carrier Required= Yes,Target Binding= Before route,Quantity= Per pick,Target= Scan the container,Deposit Mode= Direct to target,Completion= Confirm at the drop location. Confirmation: defaults. Published. - Area
PICK-Ahas a row inPolicy by Equipment Kind: equipmentCART->CART4. Area defaultDISCRETE. - Handling unit type
CART4T:Holds Containerson,Positions= 4,Active. CarrierCART-1of that type, empty, no parent. - Operator
op2has aPickright inPICK-A,Pick Executionon. - Owner
Delivery location (picker carrier)=STAGE-1(typeStaging). - Five released orders have planned cartons whose picks are in
RACK; all deliver toSTAGE-1.
Steps:
op2opensPick by Area, entersPICK-A, chooses equipment 2 (from the list) and picksCART. The system writesCARTas the operator's equipment and reads (PICK-A,CART) =CART4. The policy needs a carrier andop2holds no task: the answer isScan Carrier(PKA01) withmax_targets4. No task is claimed.op2scansCART-1. Checks pass. The capacity ismin(4, 4)= 4. Five cartons are candidates. The best four are chosen by order priority, requested ship date and the first location on the walk. All go toSTAGE-1. A carton going elsewhere is passed over.- The system claims the tasks of the four cartons at once. A task that another operator took in the same moment makes the start answer
the selection changed while it was being taken: press again. - Positions 1 to 4 are made.
op2scans a box for each (PKA02). After the fourth, the assignment isReady. - Route: the four cartons' picks are walked by
Route Sequence. For each: location scan, item scan, (LPN if any), thenPKA28scan of the position's box. A wrong box:this is not the right box — put the goods into your position's box. - The last pick is shorted: found 0 with
SHORT. A short inside a cart works like a discrete short, but a zero short deposits nothing. - No stop left.
Delivering.op2scansSTAGE-1. ScanningSTAGE-2givesthis is not the delivery location of this carrier: STAGE-2 (STAGE-1). WithSTAGE-1: the boxes with goods become separate roots atSTAGE-1; empty boxes come off;CART-1is free (Empty).
What changes if you change a setting:
Quantity=Aggregated(published): step 2 is accepted. If two of the four cartons take one item from one location, the route shows them as one summary step (operator guide, section B3a of the picking chapter).Target=PositionNumber: the policy cannot be saved or published.Max Targets= 3: three cartons.- The cart type has 2 positions: two cartons, whatever
Max Targetssays. Completion=Complete: step 7 needs no location scan; the boxes are unloaded where the cart stands. A pack station on the area is not used.- No
Delivery location (picker carrier)on the owner and tasks without a commonto_location: those cartons are never taken. - Equipment
On footat step 1: the area defaultDISCRETEapplies, and the operator picks discretely.
8. A short setup checklist for picking
- Zones exist, each with
Picking To Location(Sidebar > Topology > Putaway Zones). - A work area with its zones (
Sidebar > Topology > Work Areas). - Equipment profiles if you use carts or lift limits.
- Operators synced. For each:
Task Permissionsrow withTask Type=Pick, the area, andPick Executionticked. - Policy: use
DISCRETEfor pallet picking. For carts, make a policy withUnit=PlannedTargetand publish it. Assign it to the area or to the area and equipment. - Carrier types in
Handling Unit RegistrywithPositions. - Short reasons: check that
SHORT,LPN_NOT_FOUNDandWRONG_LOCATIONare published and tell operators the codes. - Count: decide whether you want
Count an Emptied Location, a cycle policy, or the count action in short reasons. - Test with one order before you widen the rights. There is a built-in gate view
pick_cutover_gate; every value in it must be zero before you widen the rollout.
9. What happens to open work, in one table
| You change | Open task in the pool | Task held by an operator | Cart assignment in progress | Open pallet |
|---|---|---|---|---|
DISCRETE revision (confirmation fields) | Next scan reads the new values. | Same. An open proof keeps its plan; the commit re-checks the stock. | Not affected (frozen copy). | The pallet drop list and the emptied-location flag stay as at opening. |
| Cart policy revision | No effect. | No effect. | Frozen copy. | |
| Area policy assignment | Next dispatch. | Held task is continued. | Continued first. | |
Permission, Pick Execution, zones, equipment | Next dispatch. | Held work continues. | Continues. | |
| Short reason | The next short. | The next short. | ||
TASK_* settings | Next claim or renewal. | Next renewal. | Next renewal. |
10. Things you may not expect
- A policy with
Unit=Orderand a code other thanDISCRETEis read for the pallet fields only, and only for a pallet opened throughPick by Areain the area's zones. Its confirmation fields are never read for a discrete pick (21, section 1.2). Max Concurrent Tasksdoes not limit pickers (22, section 1).Target Binding,Deposit Mode,Pallet Drop Suggestionhave no effect of their own (21).Reserved LPN=Do not confirmdoes not remove the LPN scan whileLoose Lot Source=Automatic(21, section 7).- The RF shows only
No eligible Pick workwhen nothing can be handed out. The reason codes are only in the API answer (diagnostics). - The operator types the short reason code; the screen offers no list (
23, section 2).