Skip to content

Warehouse Management System Applet

Run the physical side of a warehouse: receiving, putaway, what sits on which shelf, and picking and packing for sales orders. Nothing here moves stock or posts. The balance changes only when the stock transfer a packing list creates is finalised in the Stock Transfer applet; a delivery order it creates moves no stock even when finalised — the goods leave on the sales invoice or other stock-out document — and building a picking list reserves nothing.

Your job, and the screen for it

The jobScreen or tabRead
Record goods arriving and queue them for containersInbound Process › Receiving Doc, then FINAL from the listing with auto-allocation to containers off — FINAL inside the editor drops lines typed in by handInbound
Put received goods into containers, then onto shelvesProcessing Queue, Putaway List, Putaway Processing — or Scan Session, which does nothing until a Scheduler clock runs its job; without one, link on Container Allocation › ListingInbound; Scan Session
See or record what sits whereContainer Allocation › ListingSpace Container Allocation
Pick and pack a sales orderSend to Warehouse Picking Queue in Sales Order (Internal), then Picking Queue › Create Picking List, Picking List, Packing ListOutbound
Turn a packing list into a delivery order or a stock transfer — both arrive as drafts, and only the stock transfer moves stock, once finalisedPacking List listing (Create DO, Batch Process DO); the Doc Conversion tabOutbound, step 6; Where the numbers on the generated Delivery Order come from
Set up warehouses, shelves, containers and pickersWarehouses (Details, Node Setting, Layout tabs), Containers, PickersBefore you can use it

Overview

The Warehouse Management System applet is the physical-fulfilment layer that sits between a customer order and the document that actually moves stock. It records goods arriving at a warehouse (Receiving Doc), works out which container and which shelf they go to (Processing Queue and Putaway), keeps the map of what is stored where (Space Container Allocation), and drives picking and packing for orders that have been pushed to the warehouse from the Sales Order (Internal) applet.

It is opened by warehouse staff, supervisors and the administrator who sets up the warehouse structure. Nothing in this applet posts a journal or writes an inventory transaction line. The last step of the outbound flow converts a Packing List into a generic document — an Delivery Order (Internal) or an outbound Stock Transfer — and that document is finalised in its own applet. Stock only moves there.

The applet keeps its own records, its own warehouse/layout/node hierarchy and its own WMS item register. These are separate from the company/branch/location tree owned by the Organisation applet and from the stock balances owned by Stock Balance.

This is the heavier of two ways to run fulfilment in BigLedger. The lighter one needs none of this: a generic document can carry its own delivery and packing state in its own columns, and many businesses never model a warehouse at all. Read Which queue am I looking at? before you conclude that a screen or a column somebody has described to you is one of these.

Where it fits

DirectionApplet / documentRelationship
Upstream (outbound flow)Sales Order (Internal)Its Pick Pack Queue screen pushes order lines into this applet’s Picking Queue. Nothing else fills that queue.
Upstream (inbound flow)Purchase GRN (Internal), purchase orders, sales returnsReceiving lines can be linked to a generic document line for traceability, on the External Generic Document tab.
Upstream (master data)Inventory Item MaintenanceFinancial/inventory items that receiving lines, picking lines and containers point at.
Upstream (master data)OrganisationCompany, branch and location used by the Packing List → Stock Transfer conversion.
Upstream (master data)EmployeeEntities registered as Pickers and as the Receiving Doc person-in-charge.
Upstream (master data)PricebookThe pricing scheme used when a Packing List is batch-converted into a Delivery Order.
DownstreamDelivery Order (Internal)Created in DRAFT from a Packing List.
DownstreamStock TransferCreated in DRAFT from a Packing List’s Doc Conversion tab.
SiblingStock Availability, Stock BalanceThe Picking Queue shows the location and company ledger quantity alongside each queued line.

The warehouse floor: the applet plans, the documents post

The Warehouse Management System applet runs the physical work and keeps its own records of it: what arrived, which container went to which shelf, what was picked and packed. It writes no stock line and no journal. That is the design: the warehouse works at the speed of the floor, and the stock ledger changes only when a document someone can review is finalised.

StepWhat the warehouse recordsWhat moves the stock
ReceivingA receiving doc, linked to the purchase order or GRN it belongs to, and a putaway queueThe purchase document itself — a GRN Stock In or the purchase invoice. Receiving creates no ledger document
PickingOne picking list per sales order, from orders the sales team sends to the warehouse queueNothing yet
PackingA packing list per picking list, or one consolidated list for one customer and warehouseNothing yet
ConversionThe packing list becomes a draft Delivery Order or a draft outbound Stock TransferFinalising the Stock Transfer moves stock. A Delivery Order moves none: the goods leave the ledger on the sales invoice or another stock-out document

What the floor team should know before go-live:

It does notWhat to do instead
Check availability or reserve when a picking list is builtA supervisor checks Stock Availability before sending orders to the warehouse queue; hold stock for a customer with Stock Reservation
Pick in wavesEach order is picked on its own list. Several picking lists for one customer and warehouse can be merged at packing
Compare weight against a shelf’s maximumThe maximum weight is recorded on the node and container; the person slotting checks the loaded pallet’s weight against it before placing it
Run as a native handheld appIt runs in the browser of a phone, tablet or PC. Scan Session uses the device camera, and a Scheduler clock you add slots its scans; the serial, cart, packing and allocation scan fields also accept a handheld barcode scanner that types and presses Enter

Screens and menus

The applet’s sidebar is:

MenuRouteWhat it lists
Warehouseswarehouse-listingWarehouse register; opening one gives Details, Node Setting and Layout tabs.
Inbound Process › Receiving Docreceiving-docReceiving document headers, with a FINAL button on the listing.
Inbound Process › Receiving Lineline-itemsFlat list of every receiving line across all headers. Editing a line gives Item Details plus one Serial Number, Batch Number or Bin Number tab, by the item’s sub-item type.
Inbound Process › Processing Queueprocessing-queueQueue rows created when a Receiving Doc is finalised; where containers are allocated.
Inbound Process › Putaway Listputaway-listPutaway instructions with a process status.
Inbound Process › Putaway Processingputaway-processing-queueOpen putaway tasks; a row disappears when its container is slotted.
Inbound Process › Scan Sessionscan-sessionBarcode scan session over containers and spaces (uses the device camera in the browser; this screen takes no typed or handheld-scanner input). A scan is only queued here; a background job does the slotting later — see Scan Session.
Container Allocation › Listingspace-container-allocationContainer ↔ layout-node links; create by scanning a container code and a space code.
Outbound Process › Picking Queuepicking-queueOrder lines pushed in from the Sales Order applet.
Outbound Process › Picking Listpicking-listPer-picker task lists. Tabs: Main Details, Lines, Picking Sequence, Add to Cart, Add to Cart Scan, Discarded Carts, Outstanding Product.
Outbound Process › Packing Listpacking-listPacking headers. Tabs: Main Details, Account, Lines, Packed Product, Discarded Product, Doc Conversion, Doc Link.
Containerswarehouse-containerPhysical container register (pallets, totes, cages).
Pickerswarehouse-pickerEntities registered as pickers for a warehouse.
SettingssettingsSee Configuration below.
PersonalizationpersonalizationPersonal Default Selection and the shared sidebar-appearance screen.

Two routes exist with no menu entry: space-container-allocation-report (the Report item under Container Allocation is not shown in the menu) and everything under settings that the shared settings sidebar does not link (below).

Applet Settings — Application Settings, Inbound Process tab, showing the Receiving Doc Settings toggles

The Settings area shows the applet’s own System Configuration group plus fixed Server Side Permissions and Developer Tools groups:

GroupItems shown
System ConfigurationApplication Settings · Default Selection · WMS Item Maintenance · WMS Item Category · WMS Item Category Group
Server Side PermissionsPermission Wizard · Permission Set · User Permission · Role Permission
Developer ToolsRelease Notes
Release Notes is a dead link here. This applet has no screen behind the link, so it sends you to the 404 screen. Audit Trail is not in this menu: it is the last entry of the applet’s main sidebar, shown to owners and admins (unless the applet settings hide it) and to anyone granted the Audit Trail report permission, and it opens the shared Audit Trail listing. Feature Visibility, Webhook and the client-side permission screen have routes but no sidebar link — Feature Visibility is nevertheless what you land on, because Settings opens on Feature Visibility by default.
The screen you land on when you click Settings — Feature Visibility, showing an empty Teams panel

Configuration

Before you can use it

PrerequisiteWhere you set itWhy
At least one warehouseWarehouses in this appletEvery receiving, putaway, picking and packing record is keyed to a warehouse. Warehouse Code, Title, Status and Type are all required.
A layout and layout nodes per warehouseWarehouses › Layout / Node SettingPutaway rows can only be planned against a layout node. Without one, every putaway row is created as PENDING_ALLOCATION.
Containers with a scan codeContainersContainer allocation, the picking cart and the packed-list scan all look the container up by its scan code, so give every container a scan code before you rely on scanning it.
Registered pickers and packersPickers in this applet, over entities from EmployeePicker is required on a Picking List and Packer on a Packing List.
Company, branch and locationsOrganisationThe Packing List → Stock Transfer form requires company, branch, from-location, to-location and transaction date.
A pricing schemePricebookOnly for the Batch Process DO path, which sends DEFAULT_PRICING_SCHEME to the conversion.
Orders pushed from the sales sideSales Order (Internal) → Pick Pack Queue → Send to Warehouse Picking QueueThe Picking Queue is fed only by that button. See Troubleshooting.
A decision about how receiving lines are createdThis applet, Receiving DocOnly a line built from a source document line carries a Split Qty, and only lines with a Split Qty survive auto-allocation. Decide before you turn ENABLE_AUTO_ITEM_ALLOCATION_TO_CONTAINER on, not after.

Applet settings

Settings are applet-local — this applet has a settings screen of its own rather than the shared one — and the screen is labelled Application Settings in the sidebar.

All eighteen controls are written together by one SAVE button and stored as one applet-settings record. Every control starts empty, so the default for every row below is off / unset until the tenant saves the screen once. The rows are grouped below by tab, in the order you would set them up.

Anyone who can open Settings can change them; they are tenant-wide, not per branch and not per user.

Inbound Process tab: receiving and containers

SettingWhat it controlsDefaultEffect when changed
ENABLE_AUTO_ITEM_ALLOCATION_TO_CONTAINERWhich path the FINAL button on the Receiving Doc listing takesOffOn: FINAL auto-allocates, creating containers for the received lines as well as the processing-queue rows. Off: FINAL creates the processing-queue rows only, and containers are allocated by hand in the Processing Queue.
SET_ITEM_CODE_AS_CONTAINER_UPON_ALLOCATIONHow auto-created containers are namedOffOn: auto-created containers are named after the item code instead of a generated code. Both FINAL buttons send it, so it applies wherever auto-allocation runs. One of only two settings in this applet that change what the server writes (the other is DEFAULT_PRICING_SCHEME) — and worth turning on if you pack by container scan, because a packed line takes its item-code column from the container’s name (see Troubleshooting), so with this on that column reads correctly.
ENABLE_PUTAWAY_ALLOCATIONThe putaway-allocation control on the Processing Queue container listingOffOn: the control appears, letting the operator push the container into the putaway list from that screen.
ENABLE_BULK_CONTAINER_UPDATEThe bulk container-update block on the same screenOffOn: the bulk update panel is rendered, so several queue rows can be allocated to one container in a single action.

Inbound Process tab: switches with no effect

SettingWhat it controlsDefaultEffect when changed
Enable bundle config upon finalNothing in this appletOffNo effect. The setting is saved, but nothing in the applet or the backend reads it. A bundle-aware receiving path does exist on the server — it containerises only lines whose item is a bundle, and finalises the document — but no button in this applet calls it; only an integration can, with the WMS item create permission.
Enable camera scannerNothingOffNo effect. Not read anywhere in the applet or the backend. The Scan Session screen initialises the camera unconditionally. Turning it on only forces Enable scan code search off in the form.
Enable scan code searchNothingOffNo effect, same as above. Turning it on forces Enable camera scanner off in the form.

Outbound Settings tab: from picking list to packing list

SettingWhat it controlsDefaultEffect when changed
ENABLE_CONSOLIDATED_PACKING_LISTThe Consolidated Packing List button on the Picking List listingOffOn: the button appears. Note the toggle’s label in the template reads ENABLE_CONSOLIDATED_PACKING_LIST_CONVERSION, but the control it is bound to is ENABLE_CONSOLIDATED_PACKING_LIST; the longer name is not a setting.
ENABLE_MULTI_PACKING_LIST_CONVERSIONThe Send to Packing List button on the Picking List listing — the ordinary route from a picking list to a packing listOff, except on a tenant that has never saved this screenOn: the button appears. Off: it does not, and the only way out of a picking list is Consolidated Packing List. The exception is the trap: while both outbound toggles are unset, the listing forces this one on, so a fresh tenant sees Send to Packing List and loses it the first time somebody saves Application Settings with only the consolidated toggle ticked. The symptom is a button that disappeared and no setting that obviously governs it.

Outbound Settings tab: scan modes

SettingWhat it controlsDefaultEffect when changed
ENABLE_MANUAL_CART_SCANWhether the Add to Cart tab is rendered on the Picking List editorOffOn: the Add to Cart tab is hidden, leaving only Add to Cart Scan. Off: both tabs are shown.
ENABLE_CART_SCAN_BY_CONTAINERCart scan mode: container onlyOffOn: scanning a container code creates the picking-cart rows for everything in that container. Mutually exclusive with the next row — the settings form clears one when you set the other. With neither of the two on — the state of a tenant that has never chosen — the Scan action on Add to Cart Scan does nothing and shows no message. Pick one mode before anyone scans.
ENABLE_CART_SCAN_BY_CONTAINER_AND_ITEM_CODECart scan mode: container and item codeOffOn: the item scan-code field takes focus and a cart row is created only when every field on the form is filled. A scan with a field still empty creates nothing and says nothing.
ENABLE_PACKED_LIST_SCAN_BY_CONTAINERPacked-product scan mode: container onlyOffOn: scanning a container packs everything in it; the per-item block on the create form is hidden. Mutually exclusive with the next row. With neither of the two on, the Scan action on Packed Product does nothing and shows no message.
ENABLE_PACKED_LIST_SCAN_BY_CONTAINER_AND_ITEM_CODEPacked-product scan mode: container and item codeOffOn: a packed line is created per scanned item, only when every field is filled; a scan with a field still empty creates nothing and says nothing.
ENABLE_PACKED_LIST_LINE_DELETE_BUTTONThe delete column on the packed-list scan gridOffOn: the delete column is made visible so a mis-scanned packed line can be removed.

Outbound Settings tab: defaults for delivery orders and stock transfers

SettingWhat it controlsDefaultEffect when changed
DEFAULT_PRICING_SCHEMEPricing scheme sent to Batch Process DO on the Packing List listingUnsetSet: each generated Delivery Order line is tagged with that scheme, but its prices and amounts are still copied from the source order, not looked up — and an item with no price in the scheme is added to it at zero. Unset: the source document’s prices are copied and no scheme is touched.
DEFAULT_COMPANYCompany pre-filled on the Packing List → Stock Transfer formUnsetSet: the company is pre-filled. Unset: the operator must pick a company; the field is required.
DEFAULT_BRANCHBranch pre-filled on the same form — the only place it is used. The Receiving Doc create screen and the Space Container Allocation create/edit screens load it, but nothing on them reads itUnsetSet: the branch is pre-filled on the Packing List → Stock Transfer form. Unset: the required branch field stays empty.

Keys read without a control on this screen

Two keys are read at runtime without a control on this screen:

  • DEFAULT_LOCATION — loaded by the Receiving Doc create screen and by Space Container Allocation create/edit, which merge the personal value over the applet value, and then read by nothing: no field on those screens or anywhere else in the applet is pre-filled from it. The only screens that write it are the two Default Selection screens described below, and neither works.
  • ENABLE_BRANCH_FILTER — not on this screen, and no screen in this applet saves it, but it is read. If the applet’s settings record carries it switched on (written through the API, for example), picking a supplier on a Receiving Doc’s Account tab is refused with Supplier not linked to branch unless that supplier is linked to a branch, and picking a customer on a Packing List’s Account tab is refused with Customer not linked to branch in the same way. The check is “linked to any branch”, not to the document’s branch. If you see either message, that key is the cause.

Default Selection (applet and personal)

Settings › Default Selection and Personalization › Default Selection render Default Branch and Default Location drop-downs.

Neither screen works. Choosing a branch or a location produces an error before anything is stored, and the SAVE button saves nothing. Set DEFAULT_BRANCH from Application Settings instead; DEFAULT_LOCATION currently has no working control anywhere in the applet.

Settings in other applets that control this applet

SettingWhere it is setEffect here
Pick/pack queue pushSales Order (Internal) — Pick Pack Queue listing, Send to Warehouse Picking QueueMoves the queued rows from the sales-side queue into this applet’s Picking Queue and removes them from the sales side. Until this is done, the Picking Queue here is empty.
Pricing scheme definitionPricebookSupplies the scheme referenced by DEFAULT_PRICING_SCHEME.
Company / branch / location recordsOrganisationSupply the values DEFAULT_COMPANY and DEFAULT_BRANCH point at, and the from/to locations on the stock-transfer conversion.
Delivery Order and Stock Transfer document settingsDelivery Order (Internal), Stock TransferGovern what happens when the document this applet created in DRAFT is finalised.

Who can change what

  • Feature Visibility is a stub. The screen shows one Teams panel with three placeholder options (Team 1, Team 2, Team 3), an add button and a SAVE button, none of which does anything. Nothing it shows is saved, and nothing in this applet reads a feature-visibility value.
  • No client-side permission codes exist for this applet. Menu items and buttons are therefore not gated per role from inside the applet, and Applet Access has nothing to grant.
  • Server-side permissions are the standard shared screens (Permission Wizard, Permission Set, User Permission, Role Permission). This applet additionally offers the Warehouse target view, so a permission can be scoped to specific warehouses, listed by Warehouse Code and Warehouse Title.

Fields

Nearly every form in this applet asks for a code, a name, a description, a status and a date, and does with them what you would expect. This section names what each screen captures — so you can tell at a glance whether it holds the thing you need — and tables only the fields that behave in a way the screen does not show.

Warehouse, layout and node

A Warehouse captures code, title, description, status and type; all but description are required. A Layout belongs to one warehouse and captures name, code, floor, description and status. A Layout Node — your zone, rack, shelf or bin — captures node name, node type, status, a scan code, a parent node, and a position, a size and a maximum weight.

The node type comes from the warehouse’s Node Setting tab: there you define, once for each warehouse, the kinds of space it has — a name, a type, a height, width and length, and a maximum weight — and each layout node you create picks one of them from that list.

FieldWhat the screen does not tell you
Layout › FloorRequired on the create form and not on the edit form. A layout can therefore be edited into a state the create form would have refused.
Node › Scan codeContainer allocation and the scan session look a node up by an exact match on the scan code and take the first row returned. A node saved without one can never be scanned; two nodes sharing one code are indistinguishable, and the first always wins.
Node › Parent nodeNodes form a tree of any depth through the parent node. Nothing enforces a zone → rack → shelf → bin shape, or any depth limit — that convention is yours to keep, and nothing will tell you when somebody breaks it.
Node › Max weightRecorded, and searchable on the node-type register. No putaway or slotting step compares a container against it, so stating a maximum weight does not stop you slotting a pallet into a shelf that cannot hold it.

Receiving Doc and its lines

The Receiving Doc header captures Doc No (disabled — the tenant numbering fills it), Warehouse, Transaction Date, PIC, Reference, Description, Tracking ID and a record Status. A Receiving Line captures the item, quantity, UOM and a tracking ID. Opened from Receiving Line or from a line-link form, it adds one Serial Number, Batch Number or Bin Number tab, whichever matches the item’s sub-item type; the line form inside the Receiving Doc editor has Item Details only. Editing an existing header adds Account, Lines, Generic Document, External Generic Document and Attachments. The create screen has only Main Details (its Lines and GenDoc tabs are commented out), so lines are added after the first save: CREATE saves the header and opens it in the editor, where the Lines tab is.

FieldWhat the screen does not tell you
Header › WarehouseNothing on this header is validated — including this. A Receiving Doc saves with no warehouse, and every processing-queue row it later creates copies the header’s warehouse, so those rows arrive with none. They are then invisible to any warehouse filter.
Header › StatusThis is the record status (ACTIVE / INACTIVE), not the posting status. Posting status is DRAFT or FINAL and is changed only by the FINAL button.
Line › ItemOne line points at one of a financial item, an inventory item or a WMS item. Which one it is decides what the rest of the flow can do with it — see What it will not do.
Line › QtyRequired, minimum 1, and truncated to a whole number the moment auto-allocation reads it. Receive 10.5 and ten are containerised; the half is not carried, and nothing reports it.
Line › Split QtyExists only on the line-link form — the path that creates a receiving line from a source document line, where it is required and defaults to 1. The plain Receiving Line form has no Split Qty control at all, so a line typed in by hand has none. That single fact decides whether auto-allocation sees the line; see Inbound below.
Bin Number tabThe form validates and then dispatches nothing. Nothing is stored, and it does not write the bin tables used by Stock Reservation.

Serial numbers may be typed, scanned, or imported with a delimiter (required on the import dialog). Batch Number wants Batch No, Qty, Issue Date and Expiry Date, all required.

Container, picker, picking list and packing list

A Container captures a code, a name, a split quantity, a type, four dimensions, a scan code and a description — and validates none of them. A Picker links a warehouse to an entity from Employee, with the contact details shown for convenience. A Picking List wants a picking date, a picker and a warehouse; a Packing List wants a packing date, a packer and a warehouse, plus free-text reference, tracking, description and remarks, and its Account tab will not save without a customer entity.

FieldWhat the screen does not tell you
Container › Scan CodeMatched exactly by every scan-based flow — container allocation, the picking cart, the packed-list scan. A container with no scan code is unreachable from all three, and the form will happily save one.
Picking List › Picker and WarehouseRequired on this form — and a picking list created from the Picking Queue sets neither. Those lists arrive blank in both columns and no warehouse filter finds them. See Outbound below.
Packing List › PackerThe drop-down is the Picker register. There is no separate packer register; a person must be registered as a picker for the warehouse before they can be named as its packer.

Packing List → Stock Transfer (Doc Conversion tab)

Company, Branch, From Location, To Location and Transaction Date are all required; Tracking ID and Description are copied onto the document as its tracking ID and remarks.

FieldWhat the screen does not tell you
Company, BranchPre-filled from DEFAULT_COMPANY and DEFAULT_BRANCH in Application Settings. Unset, the operator picks them by hand every time. The from and to locations are never pre-filled — nothing on this form reads DEFAULT_LOCATION.
From Location / To LocationBecome the from and to locations on the generated Stock Transfer. This is the only conversion in the applet that moves stock when finalised, and these two fields are where it moves it — a transposed pair is a stock movement in the wrong direction, posted from a different applet by somebody else.

Space Container Allocation and the WMS item register

Space Container Allocation has a scratch Scan Code box that searches containers and spaces by their scan codes and fills the rest of the form; the container and space fields it fills are required. The WMS item register captures warehouse, item code, name, type, UOM, description and status, none of them validated, with read-only audit fields. WMS Item Category and WMS Item Category Group both require a category code and name, and the group form additionally requires a parameter code and parameter name.

A WMS item is a separate record from an inventory item and from a financial item. Receiving lines can point at any of the three, which is the flexibility the register exists for — a pallet of shop fittings that no one sells has a place to live — and also the reason the outbound scan behaves differently depending on which one a line used.

Lifecycle and effects

Which queue am I looking at?

BigLedger has several queues that all describe “work waiting to be done to a document”, and they are different tables with different writers and different logic — not one queue seen from different screens. Getting this wrong is the commonest way to read a warehouse question and answer a manufacturing one. The whole set, so the index is complete:

QueueWritten byWhere you see it
Receiving / processing queueThe FINAL button on a Receiving DocInbound Process › Processing Queue, this applet
Putaway queuePushing a container into the putaway listInbound Process › Putaway Processing, this applet
Pick/pack queue, finance sideThe sales side, and the Delivery & Installation job servicePick Pack Queue in Sales Order (Internal)
Pick/pack queue, warehouse sideSend to Warehouse Picking Queue, which moves rows off the finance sideOutbound Process › Picking Queue, this applet
Pick/pack queue, manufacturing sideThe MRP flowThe manufacturing applets
Delivery & Installation jobsThe job service, which also adjusts the finance-side queue as jobs are created and cancelledThe Delivery and Installation applet
Simplified delivery — the delivery and packing state held on the document itselfThe document appletsThe document’s own delivery details screen

Three consequences of that table are worth stating plainly, because none of them is visible from any screen.

The finance-side queue and this applet are not the same product decision. Queueing work for picking on the document — its own pick/pack flag, packing status and delivery-tracking fields — is the lighter of the two paths, and it needs none of the warehouses, layouts, nodes and containers below. This applet is the heavier option you move to when you want the physical warehouse modelled. If you are comparing notes with another BigLedger user about “the pick pack queue”, check which of the two you are each looking at before you conclude anything.

A warehouse-side queue row is a pointer, not a copy. A Picking Queue row holds a reference to the document and the line, a document type, a base quantity, a balance, a priority, a running number and a customer branch — and no item, no company, no branch, no location and no warehouse. Everything else on the Picking Queue is joined back from the generic document at display time. That is why the listing can only show one document type, why nothing filters the queue by warehouse, and why a picking list built from it has no warehouse on it. It also means the push moves work by document: every queued line of a selected document goes across, not only the lines that were ticked.

The balance is held as text on the warehouse side. Nothing in the applet is harmed by that, but a report that sorts or compares this column sorts it as text, where "10" comes before "9".

The sales-side queue carries a queue type whose two values are MRP and WMS — apparently the discriminator that says which downstream queue a row is destined for. Nothing in the backend decides anything from it, nothing sets it and no query filters on it, so it is not populated. Your own integration can read it, but do not filter or report on it.

The figure behind each queue screen

Every count and quantity in this applet is a stored row that one action wrote, read back when the screen loads — except the two stock columns on the Picking Queue, which are the stock ledger’s stored balance rows. None of them is recalculated from anything else, so each is exactly as current as the last action that wrote it.

Screen and figureWritten byAs of
Processing Queue — one row per receiving line still to allocate, and its balanceFINAL on a Receiving Doc writes the rows; each allocation stores the balance the screen worked out and deletes the row at zeroThe last allocation; a row that has gone was fully allocated (or created at zero by auto-allocation)
Putaway List and Putaway ProcessingPushing a container to putaway; slotting deletes the processing row and completes the list rowThe last push or slot
Scan Session rowsThe scan, as UNPROCESSED; the background job marks them PROCESSEDThe last time a Scheduler clock ran the job
Pick Pack Queue in Sales Order (Internal) — Qty Pending per lineSend To Queue on the order, with that line’s quantity to deliverThe send; the rows leave when they are pushed to the warehouse
Picking Queue — Qty PendingCopied from the sales-side row at the push, and not rewritten by any warehouse screen afterwardsThe push
Picking Queue — customer, item, Base Quantity, delivery statusNot stored on the queue row: read from the order each time the grid loadsNow
Picking Queue — Location Balance, Company BalanceThe stock ledger’s stored balance rows for the order line’s company, location and item — the same row as Bal on Stock Balance — shown as 0 where no row existsThe last stock-moving FINAL at that location, once its balance job has run
Picking List Lines — Qty to Pick, Qty PickedCreate Picking List: the order line’s full base quantity as a whole number, and 0The day the list was built; neither is rewritten
Add to Cart — SO Qty, Qty PickedSO Qty is copied from the line’s quantity to pick; Qty Picked is what the picker typed, or a scanned container’s whole contentThe picker’s last update
Outstanding Product — Required Qty, Qty Picked, DiscrepancyGenerate Discrepency Report on the Add to Cart tab, which replaces the previous rows with quantity to pick against active carts’ quantity picked, per financial itemThe last press of that button; inventory and WMS items are not in it, and while any item on the list is in no cart at all the button fails with an error (read from the code, not tried)
Packing List lines — quantity and UNPACKED / PACKEDSend to Packing List, one line per active cart at its quantity picked; the packed-product scan marks them PACKEDThe last scan

The warehouse and the stock ledger answer different questions, and disagree on purpose. No record in this applet writes a stock ledger line; the ledger’s balance at a location changes only when a stock-moving document — a sales invoice, a stock transfer, a stock adjustment — is finalised, and its balance row follows a few seconds later when the balance job has run. So between packing and invoicing, Stock Balance still counts goods that are sealed in a carton by the door, and a unit found missing on the shelf stays in Stock Balance until somebody posts an adjustment. Use the warehouse screens for where it physically is and what has been picked; use Stock Balance for what the books say you hold at that location; and use the Stock Movement Report in Stock Report when you need to know which document changed it, and when.

Posting proof

AspectValue
Server document typeNone. Receiving docs, picking lists and packing lists are not generic documents and carry no document validation.
Amount signumNot applicable — no amount is posted by any WMS record.
Quantity signumNot applicable — no inventory transaction line is written by any WMS record.
Dr/Cr equationNone. No journal posting is defined for any warehouse record.
GL precedenceNot applicable.
Stock processorNone inside the applet. Stock moves only through the generic document the Packing List is converted into.
What VOID reversesThe applet has no VOID. Voiding the source Sales Order runs a queue clean-up job (below).

Both documents this applet creates are written with an amount signum and a quantity signum of 0 on every line. What happens to stock is decided later, when the document is finalised in its own applet:

Created documentSignums as written hereCreated with
Delivery Order (Internal)0 / 0Created as DRAFT — moves no stock even when finalised.
Stock Transfer (outbound)0 / 0Created as DRAFT. Finalising it in the Stock Transfer applet is what applies the outbound transfer’s direction and removes stock from the from location; nothing written here does.

Inbound

  1. Receiving Doc is created as DRAFT (the only two posting statuses are DRAFT and FINAL). The FINAL button on the editor is disabled while the header has no lines.

  2. FINAL sets the header’s posting status to FINAL and creates the processing-queue rows — but which rows depends on where you pressed it and on one setting. See the callout below; this is the single most consequential thing on the page.

    FINAL is not one-way. Nothing on the server checks whether the document is already FINAL, so pressing it a second time creates the processing-queue rows a second time — and on the auto-allocation path, a second set of containers. The listing offers a tick box only on DRAFT rows, but the FINAL button inside the editor stays enabled on a document that is already FINAL (it is disabled only while there are no lines). Look at the posting status before you press it; if the Processing Queue shows every line of a receiving document twice, that is what happened, and the extra rows and containers have to be cleared by hand.

  3. Processing Queue. Allocating a container updates the queue row and the container. The remaining balance is calculated by the screen and sent to the server, which stores whatever it is given; when it arrives at zero or below, the queue row is permanently deleted — not soft-deleted, not archived — and only the container is updated. Once it has gone there is no record in this applet of what was allocated against that receiving line.

  4. Putaway. Pushing a container into the putaway list creates a putaway row plus a putaway processing-queue row. Process status is PLANNED_ALLOCATION when the container already has a layout node, and PENDING_ALLOCATION when it does not.

  5. Slotting a container creates the container ↔ node link, sets the putaway row to COMPLETED_ALLOCATION, and deletes the putaway processing-queue row. If you slot by Scan Session, this step happens later, in a background job — see below.

Space Container Allocation writes the same link row directly, without going through putaway.

Scan Session: slotting happens later, in a background job

The Scan Session screen does not slot anything. Each scan is stored as a queued row with status UNPROCESSED, and that is all the screen does. The rows are worked by a background job, the warehouse container–space scan-session processor, which runs only when a clock for it is set up in the Scheduler applet. No such clock is installed by default, so until you add one, a scan session is a list of scans that nothing ever acts on. Each time the clock fires, the job takes up to ten open sessions and, for each:

  • decides whether a scanned code is a space or a container by looking for the text Node_ or Container_ inside it — your node and container scan codes must carry those prefixes for this screen to work at all;
  • finds the matching putaway task, or failing that the node or container itself, creates the container ↔ node link and deletes the matched putaway task;
  • marks every row of the session PROCESSED.

A code with a prefix that matches nothing is marked PROCESSED with the reason in Remarks. A code with neither prefix is marked PROCESSED with an empty Remarks and nothing else happens — it looks exactly like success. (Read from the code, not tried.)

How to check: open the session’s scan list. Rows still UNPROCESSED after a few minutes mean no clock is running the job. Rows PROCESSED with no remark but no new link in Container Allocation mean the scanned codes lacked the prefixes. If your labels are printed without them, use Container Allocation › Listing to link containers to spaces instead — it looks codes up exactly, with no prefix rule.

FINAL takes two different paths, and one of them silently drops lines.

On the listing, FINAL honours ENABLE_AUTO_ITEM_ALLOCATION_TO_CONTAINER. Off, it calls the plain insert, which creates one queue row per receiving line, carrying the received quantity as the balance to allocate. On, it calls auto-allocation instead.

Inside the Receiving Doc editor, FINAL ignores the setting and always calls auto-allocation.

Auto-allocation processes only the lines that carry a Split Qty, and Split Qty exists only on the line-link form. A Receiving Doc whose lines were typed in by hand has no Split Qty on any of them, so auto-allocation creates nothing — no containers, no queue rows — sets the header to FINAL anyway, and reports “Processing Queue Posting Successful”. The goods are received, the document looks posted, and the Processing Queue is empty.

The symptom is “we finalised the receiving doc and nothing arrived in the Processing Queue”, and the fix is to finalise from the listing with the setting off, which takes every line regardless.

Auto-allocation also creates its queue rows with a zero balance by construction. That is correct — the containers already exist, so there is nothing left to allocate — but it means a Processing Queue row created this way is a record, not a task, and the next update of it deletes it.

Outbound

  1. Order lines arrive in the Picking Queue only when someone presses Send to Warehouse Picking Queue in the Sales Order (Internal) applet. That call copies each queued row for the selected documents and removes the sales-side row, so the same work is never in both queues and the sales side stops showing it. The deletion is conditional on the copy having succeeded, which is worth knowing because the next step is not.

  2. Picking Queue lists those rows joined to their generic document, with the ledger quantity from the location and company stock balances beside each line. It only ever asks for sales orders, so only sales orders are shown regardless of what else was pushed in — and the group heading over them reads Sales Invoice No although the numbers under it are sales order numbers. The orange Qty To Deliver column accepts a number up to Qty Pending and is never sent anywhere: the next step reads only which rows you ticked.

    Nothing in the flow checks availability, so that check is the supervisor’s, before the next step: compare Qty Pending with Location Balance, remembering that the balance still counts goods packed but not yet invoiced.

  3. Create Picking List groups the selected queue rows by source document header and creates one picking list per header. Three things it does that the screen does not say, and one reason to use it:

    • It walks every line of that document, not only the lines you selected, and sets the quantity to pick from the line’s full ordered quantity — the queue’s remaining balance is never consulted. A partly shipped order is re-picked in full.
    • Quantity to pick and quantity picked are whole numbers, so a fractional quantity is truncated.
    • It sets neither the picker nor the warehouse on the new header, though the Create form requires both. Lists made this way arrive blank in both columns, and a warehouse filter will not find them.
    • Build picking lists here, not with the Picking List screen’s own Create. A list created by hand can link sales-order lines on its Lines tab, but its Generate Picking Sequence button does nothing, so nothing on these screens gives the list the picking lines that Add all to picking cart copies into a cart. BigLedger is tracking this.
  4. Picking is recorded on the carts, not on the list’s lines. Add all to picking cart (or Add selected to picking cart) on the Lines tab copies each line into a cart row with its quantity to pick and nothing picked; the picker then types Qty Picked on the Add to Cart tab (it refuses more than the quantity to pick; the tab is hidden while ENABLE_MANUAL_CART_SCAN is on), or a container scan puts the container’s whole content in the cart and empties the container. The Lines tab’s own Qty Picked is written as 0 when the list is built and nothing changes it later.

    A cart row also claims its item: adding the same item to another list’s cart opens a conflict dialog naming the list that holds it, and confirming moves that list’s cart row to its Discarded Carts. Nothing releases the claim when a list goes to packing, so the dialog appears for the next list with that item; when the list it names is already IN_PACKING_STATION, confirming is safe, because its packing lines already exist (read from the code, not tried).

  5. Send to packing creates the Packing List and sets the picking list’s packing status to IN_PACKING_STATION. The packing list’s lines are built from the picking list’s active carts, each carrying the cart’s quantity picked, so a short pick arrives at packing already short. The guard that should refuse a list with no carts at all never fires: such a list goes to packing as an empty packing list (read from the code, not tried).

    Consolidated Packing List is a separate action that merges several picking lists into one packing list; it refuses lists for different customers (“Mismatching entities found in picking lists.”) or different warehouses (“Mismatching warehouses found in picking list.”). Packing list lines start UNPACKED and become PACKED as they are scanned or converted in bulk.

  6. Conversion. From the Packing List listing, Create DO consolidates the selected DRAFT packing lists into one Delivery Order and requires every selected header to name the same customer; Batch Process DO creates one per packing list using DEFAULT_PRICING_SCHEME. Create DO carries over only lines whose packing status is PACKED; Batch Process DO and the Stock Transfer conversion copy every line, UNPACKED ones included, and nothing stops the same packing list being converted twice — check the draft before you finalise it. BigLedger is tracking this.

    From the Doc Conversion tab, a Packing List becomes an outbound Stock Transfer. Both are written with posting status DRAFT and linked back to the packing list — while the packing list’s own posting status becomes FINAL and every one of its lines is marked converted.

    The new document is written directly rather than through the document screens, so three things you might look for are not there: it is not checked the way a document saved on its own screen is, it does not appear as a created event in a webhook feed, and it has no entry on its own Doc Link tab. The link back is recorded on the warehouse side only — open the packing list’s Doc Link tab to find it.

Create Picking List deletes the queue rows whether or not it created anything.

The four writes it makes — the picking list, the picking sequence, the document links, and the deletion of the selected queue rows — run in one transaction, but a failure in any of the first three is written to the server log and swallowed. Nothing is rethrown, so the transaction commits and the deletion stands. The endpoint then returns “Successfully created picking list from queue.” either way.

There is no undo and no re-drive: the queue rows are hard-deleted, the finance-side rows they came from were deleted when they were pushed across, and nothing sweeps for orders that have left both queues without a picking list. If a document disappears from the Picking Queue and no picking list appears, it has to be pushed again from the sales side.

Where the numbers on the generated Delivery Order come from

This is the question the finance team asks first, and the answer is that the quantity and the money come from different documents.

  • The base quantity is the packed quantity, from the packing-list line.
  • The UOM quantity, the standard, net and discount amounts, the tax amounts and the transaction amount are copied unchanged from the source order line.

So a short shipment produces a Delivery Order whose base quantity says eight and whose UOM quantity and every amount column still say the ten that were ordered. It does not misstate your accounts — the document is created in DRAFT with quantity signum zero and posts nothing until somebody finalises it in the Delivery Order applet — but it does mean the draft is not a short-shipment document until somebody edits it, and the person who edits it is not the person who packed it. The source order’s prices ride along whether or not DEFAULT_PRICING_SCHEME is set: the setting only tags each line with that scheme, and where the item has no price in it, the conversion adds the item to the scheme with every price at zero. Check the scheme after the first batch: a zero price sitting in a price list is easy to miss, and whether a sale priced from that scheme then fills zero has not been tested.

A packing-list line made by a container scan carries no order line of its own. The conversion then copies from a line of the linked order with the same item, whichever the database returns first — so where an order holds the item on two lines at two prices, both packed lines take the same one of them. Only when the packing list has no linked order, or the item is not on it, is the line created with the packed quantity and no amounts.

A worked day: GSO’s fulfilment centre picks one online order short

GadgetSphere Online Sdn Bhd (GSO) packs its web orders at its fulfilment centre. This morning’s first finalised sales order has three lines: 2 flagship smartphones, 1 ultraportable laptop and 10 wireless earbuds. Stock Balance says the fulfilment centre holds 9 earbuds; the shelf holds 8, because one damaged unit was binned yesterday and nobody posted the adjustment. The scenario is the ordinary one on a fulfilment floor: the books say one thing and the shelf another, and the picker finds out first.

StepWhat you seeWhat has posted to stock
1. Send To Queue on the orderSales-side Pick Pack Queue: three rows, Qty Pending 2, 1 and 10. Picking Queue: emptyNothing
2. Send to Warehouse Picking QueueSales-side queue: empty for this order. Picking Queue: the three rows, Qty Pending 2 / 1 / 10, earbuds Location Balance 9Nothing
3. Create Picking ListPicking Queue: the rows are gone. New list, no picker and no warehouse until you set them; Lines: Qty to Pick 2 / 1 / 10, Qty Picked 0Nothing
4. Add all to picking cart; the picker finds 8 earbuds and types 2 / 1 / 8 on Add to CartLines still say Qty Picked 0. After Generate Discrepency Report, Outstanding Product: earbuds required 10, picked 8, discrepancy 2Nothing
5. Send to Packing List, then scan the packed productsPicking list IN_PACKING_STATION; packing list lines 2 / 1 / 8, UNPACKED, then PACKEDNothing
6. Create DOA DRAFT delivery order: base quantity 8 on the earbuds line, but its UOM quantity and amounts still for 10. Packing list FINALNothing — Stock Balance still says 9 earbuds
7. The office corrects the delivery order to 8 and finalises it; the sales invoice for 8 is finalisedStock Movement Report: one line of −8 earbuds at the fulfilment centre, dated the invoiceThe invoice’s stock line; Stock Balance shows 1 a few seconds later, against an empty shelf

What the short pick leaves open. Two earbuds, and the warehouse no longer holds any record of them as work: the queue rows were deleted at step 3, the picking list has gone to packing, and the Outstanding Product row on that list is the only trace. The delivery order the warehouse wrote carries no knock-off link to the order, so the order’s balances move only by what the invoice knocks off — see Delivery Order (Internal). Deciding what happens to the two is customer service’s job, the same morning:

  • Ship them later. The warehouse has nothing to pick them from: the line has to come back through the order’s Send To Queue and be pushed across again. Whether the order offers a line it has already sent once has not been established for this page — try it on one order before you promise a customer a date.

    When it does arrive, Create Picking List again builds every line of the order at its full quantity, so on the new list use Add selected to picking cart on the earbuds line only and pick 2 — the packing list is built from the carts, so the phones and the laptop do not go out twice. The conflict dialog will name this morning’s list; it is in packing, so confirm.

  • Cancel them. Close the remaining quantity on the order, as the partial delivery workflow describes.

The ninth earbud is the inventory controller’s: a stock adjustment at the fulfilment centre brings Stock Balance back to the shelf. Until it is posted, the Picking Queue will offer a Location Balance of 1 that nobody can pick.

The thirty-second check: one order, five numbers

Take one shipped order line and read these in order. Each pair should agree; the first that does not tells you where the order went wrong, and whose job it is to put it right.

  1. Order line quantity = picking list Qty to Pick. A smaller Qty to Pick means a fractional quantity was truncated; a list holding lines you did not tick means the whole order was built. The warehouse supervisor edits the carts, not the list.
  2. Outstanding Product = the list and the carts. Its Required Qty should equal Qty to Pick and its Qty Picked the carts’ total for the item. If not, the report predates the last cart change: press Generate Discrepency Report again.
  3. Active carts’ Qty Picked = packing list line quantity. A gap means a cart was discarded or added after Send to Packing List. The packer reconciles the carton against the cart before sealing it.
  4. Packing list PACKED quantity = delivery order base quantity = its UOM quantity and amount. Base right and UOM or amount wrong is a short shipment nobody has corrected yet — the billing office fixes the draft before FINAL.
  5. Invoice quantity = the Stock Movement Report line at the fulfilment centre, and Stock Balance fell by it. No ledger line means the invoice is not FINAL or its stock job failed; a ledger line and an unchanged Stock Balance for more than a few minutes means the balance job has not run. Both belong to accounts, through the stock report and the troubleshooting on Stock Balance.

When all five agree, the order is shipped and booked. When they agree and the shelf is still short, the difference is physical, and it is a count and a stock adjustment, not a warehouse record, that closes it.

What the source order’s packing status does — and does not — do

A sales order and each of its lines carry a packing status (IN_QUEUE, PLANNED, IN_PROGRESS, ON_HOLD, COMPLETED, PENDING_APPROVAL, APPROVED, REJECTED, INCOMPLETE, PENDING_STOCK). Nothing in the warehouse flow writes it.

The only path that would is one that no screen in any applet uses. If it were used, it would still not do what it appears to: the “is everything packed yet” check it relies on reads the manufacturing queue rather than the warehouse one, so on a tenant that does not use MRP the check tests an empty set, which counts as all packed, and the order would flip to COMPLETED on the first line rather than the last.

Take the packing status on a sales order as not maintained by this applet. Use the picking list’s own packing status (PENDING_PICKING → IN_PACKING_STATION) and the packing-list lines' UNPACKED / PACKED for where the work has actually reached.

VOID of the source order

Voiding an Internal Sales Order queues a clean-up job. It deletes the order’s remaining sales-side queue rows and its picking list — but only while the picking list is still PENDING_PICKING. Once the list has reached IN_PACKING_STATION the job does nothing, and the picking list, the packing list and any converted document survive the void. The job also never touches the warehouse Picking Queue, so rows already pulled into it are left behind.

The window this job can act in is narrower than it looks: if your operation sends lists to packing promptly, the clean-up removes almost nothing, and cancelling an order is a manual job in the warehouse.

What it will not do

  • It does not move stock and it does not post. No WMS record writes an inventory transaction line or a journal. Receiving ten pallets and slotting them changes no stock balance anywhere; the balance you see beside a Picking Queue line is the stock ledger’s stored balance row, maintained by the documents, and it will not agree with what is physically in your racks unless a document has been finalised for every movement.
  • It does not reserve, and it does not check availability. Building a picking list places no reservation and consults no stock balance: two orders for the last unit produce two picking lists, and neither screen objects. Stock Reservation is a separate mechanism and this applet writes none of its records.
  • It does not work non-sales documents. The Picking Queue shows only sales orders.
  • It does not handle fractional quantities. Picking quantities are integers; auto-allocation truncates the received quantity. Put items that are genuinely fractional through a base UOM whose quantities are whole numbers before they reach this applet.
  • It has no VOID, no reopen and no history of its queues. Processing-queue rows and warehouse queue rows are hard-deleted on completion. The shared Audit Trail screen in the main sidebar is the place to look for changes; this page has not checked which warehouse records reach it.
  • It does not protect a finalised Receiving Doc from Delete. The editor offers DELETE whatever the posting status, and deleting removes the header, its lines and their links to source documents — but not the processing-queue rows or the containers that its FINAL created. Those are left pointing at a document that no longer appears. Treat DELETE as a DRAFT-only action by your own rule.
  • It does not maintain the source order’s packing status — see above.

Related applets

Troubleshooting

SymptomCauseFix
A Receiving Doc is FINAL and the Processing Queue is empty for itAuto-allocation processes only the lines that carry a Split Qty, and Split Qty exists only on the line-link form — a hand-typed line has none. FINAL inside the editor always auto-allocates, whatever the setting says, and still reports “Processing Queue Posting Successful”.Finalise from the Receiving Doc listing with ENABLE_AUTO_ITEM_ALLOCATION_TO_CONTAINER off — the plain path takes every line. Or build receiving lines from a source document line, which gives each one a Split Qty.
A document vanished from the Picking Queue and no picking list appearedCreate Picking List deletes the selected queue rows in the same transaction that writes the list, and a failure in the write is logged on the server and swallowed. The endpoint reports “Successfully created picking list from queue.” either way.Push the order again from the Sales Order applet’s Pick Pack Queue. Nothing re-drives it, and the finance-side rows were deleted when it was first pushed.
A picking list created from the queue has no picker and no warehouseCreate Picking List from the queue sets neither, although the Create form requires both.Open the list and set them. Until you do, warehouse filters and picker filters will not find it.
Scanning a container into Packed Product reports success and packs nothingThe scan matches the container’s lines against the container header’s item. A container created on the Containers screen is saved with an empty line list, so nothing matches — and the endpoint still returns “Packing List Line Scan Successful”.Pack from containers that allocation built from a receiving line; those carry a line. A hand-made container is for holding a physical thing, not for packing against.
A packed line shows the container’s name in the item code columnWhen a scan creates a packed line from scratch, the item code columns are filled from the container’s name, not the item’s code.Cosmetic on the packing list, but do not report from that column. The item GUID beside it is correct.
A shipped order still shows a blank or stale packing statusNothing in the warehouse flow writes the packing status on the sales order.Read the picking list’s own packing status and the packing-list lines’ UNPACKED / PACKED instead.
The Send to Packing List button disappeared after settings were savedWhile both outbound toggles are unset the listing forces the button on. Saving Application Settings with only ENABLE_CONSOLIDATED_PACKING_LIST ticked leaves ENABLE_MULTI_PACKING_LIST_CONVERSION off, and the button goes.Tick ENABLE_MULTI_PACKING_LIST_CONVERSION in Application Settings.
The Picking Queue is empty even though sales orders are finalisedNothing in this applet fills the queue. Rows only appear after Send to Warehouse Picking Queue is pressed on the Sales Order (Internal) applet’s Pick Pack Queue screen.Push the orders from the sales side.
A picking list contains lines nobody selected, or a partly shipped order at its full quantityCreate Picking List groups by source document and copies every line of it, using the full ordered quantity rather than the queue balance.Put only the lines you mean to ship in the cart (Add selected to picking cart), and set Qty Picked there; the packing list is built from the carts.
Picking reports already claimed by another active picking listA cart row keeps its claim on the item after its list has gone to packing.If the list it names is IN_PACKING_STATION, confirm; otherwise ask whoever holds that list.
Every putaway row sits at PENDING_ALLOCATIONThe container has no layout node, so none could be planned.Allocate the container to a layout node first (Space Container Allocation), or create the layout nodes the warehouse is missing.
Scanning a container or a space finds nothingThe lookups match the container’s and the node’s scan code exactly and take the first result. A container or node saved without a scan code can never be found.Populate the scan code on the container and on the node.
Duplicate container/space linksThe create screen checks for an existing link and an existing allocation before saving.Review the existing link rather than creating a second one.
“Customers are not the same for consolidated DO”Create DO consolidates several packing lists into one Delivery Order and requires every selected header to have the same customer entity.Select packing lists for one customer, or use Batch Process DO.
A consolidated Delivery Order is missing linesOnly packing list lines whose packing status is PACKED are carried into the conversion.Scan the remaining lines into the packed list first.
“Financial Item not found.” / “WMS Item not found.” on a cart scanThe scanned container line points at an item that no longer resolves.Check the container’s contents; re-create the container allocation for the correct item.
A cart scan of a container holding inventory items fails with an error, though the items existFor a container line that points at an inventory item rather than a financial item, the lookup is made with the financial-item reference, which that line does not carry — so it fails whatever the item (read from the code, not tried).Receive goods that will be picked against financial items, so their containers carry a financial-item reference.
Scans on a Scan Session stay UNPROCESSED, or turn PROCESSED and nothing is slottedThe screen only queues scans. A background job does the slotting, only when the Scheduler applet runs it, and it recognises codes only by the Node_ / Container_ text in them.See Scan Session.
The Processing Queue shows every line of a receiving document twice, with two sets of containersFINAL was pressed again on a document that was already FINAL; each press creates the rows again.Check the posting status before pressing FINAL in the editor. Clear the duplicate rows and containers by hand.
Pressing Scan on Add to Cart Scan or Packed Product does nothingNeither scan-mode setting of that pair is on, or (in container-and-item mode) a field is still empty.Turn on one scan mode in Application Settings › Outbound Settings; fill every field before scanning.
Supplier not linked to branch or Customer not linked to branch when picking an accountENABLE_BRANCH_FILTER is on in the applet’s settings record.Link the supplier or customer to a branch, or clear the key.
Voiding a sales order leaves an orphan picking listThe void processor only cleans up while the picking list is PENDING_PICKING; after it is sent to packing nothing is removed, and it never touches the warehouse Picking Queue.Delete the picking or packing list manually, and clear the stale warehouse queue row.

Related documentation

Last updated on