Which picking policy is read for a pick
What this shows. For each part of picking, which policy revision the system reads: the policy of the area, the fallback DISCRETE, or a copy frozen on the cart or the pallet.
Reading the diagram
- The lookup for
Pick by Areais: the row of the area for the operator's equipment profile inwork_area_picking_policy, elsework_area.picking_policy_code, elseDISCRETE. An operator who choseOn foothas no profile, so the area default applies. A code with no published revision is an error (picking policy {code} has no published revision), not a silentDISCRETE. - Only
Carrier Requiredof the live policy decides, at dispatch, between a task andScan Carrier. The shape check of the policy makesUnit=PlannedTargetalways carryCarrier Required= Yes. - A cart keeps the policy it started with. A new revision does not change a live assignment.
- The five source-proof fields of a discrete pick are read from the published revision of
DISCRETEat the moment of each scan, whatever policy the area has. A policy ofUnit=Orderwith another code contributes its pallet fields only. Its proof fields are never read for a discrete pick. - A pallet freezes its revision when it is opened. A new revision does not change an open pallet.
- A pick that is taken through
PICK01always opens its pallet underDISCRETE, because that entry sends no area.pick_drop_openreceiveswork_area_codeonly from thePick by Areaflow. Retireis refused forDISCRETEand for any code an area uses.
Where it comes from
| What | Source |
|---|---|
| Lookup of the area policy | crates/libs/wms-lib-core/src/model/outbound/picking_policy.rs:600-650 |
| Dispatch reads the policy of area and equipment | crates/libs/wms-outbound/src/picking/commands/dispatch_next.rs:259-300 |
| Cart start copies the policy | crates/libs/wms-outbound/src/picking/commands/start.rs:179-200 and :370-372 |
| Copy shape | crates/libs/wms-outbound/src/domain/pick_assignment/aggregate.rs:25-48 |
Source proof: copy on a cart, DISCRETE otherwise | crates/libs/wms-outbound/src/picking/confirmation/source_facts.rs:62-92 |
Pallet opens under the area policy or DISCRETE | crates/libs/wms-outbound/src/picking/commands/drop_open.rs:113-143 and :180-196 |
| Pallet reads its frozen revision | crates/libs/wms-outbound/src/picking/deposit/onto_pallet.rs:178-200 |
| Count flag reads the pallet's revision or the cart's copy | crates/libs/wms-outbound/src/picking/emptied_location.rs:37-60 |
| Shape rules of a policy | crates/libs/wms-outbound/src/domain/picking_policy/aggregate.rs:195-262 |
Pick by Area sends the area, PICK01 does not | crates/libs/wms-lib-sql/sql/rf-screens/110_uc_pick_aggregated_cart.sql, crates/libs/wms-lib-sql/sql/rf-screens/111_uc_pick_drop_area.sql |