The Stock Movement Flow screen walks a batch of inventory step-by-step through a predefined route — for example Receiving → QC Hold → Released → Production Floor — and gates each release behind any forms the workflow requires.

Multiple lines of stock can be moved together as a single batch, and movements that need a form to be completed first stay parked in In Progress until the form is confirmed.

Where to find it: Inventory → Stock Movement Flow


Concepts

TermMeaning
FlowA named route consisting of an ordered list of locations. Configured in Stock Movement Flow Setup.
StepOne stop on a flow. Stock at the step's location can be moved on to the next step.
Movement batchA single submission that bundles every row you've selected into one transaction. Each row becomes an InventMovement.
Form gateA required form that must be completed before stock at a step can post to the next location. Defined on the step.
Draft batchA movement batch whose form has not yet been completed. The stock is reserved but has not posted; the batch shows in the In Progress section until the form is confirmed.

Quick start

  1. Open Inventory → Stock Movement Flow. The list shows every active flow plus an In progress section with any draft batches still waiting on a form.
  2. Click Open on the flow you want to use. The flow detail page loads with the route map across the top.
  3. Click the step in the route map you want to move stock from. The source list below populates with the on-hand stock at that location.
  4. Tick the rows you want to move. Adjust the MOVE quantity inline if you don't want to move the whole row.
  5. If the step requires a form, pick one from the Required to release card. Templates that have no published version are hidden from the picker.
  6. Click Save & open form (or Move stock to LOCx if no form is required) in the action bar at the bottom of the page.
  7. If no form is required the movements post immediately. If a form is required, a draft batch is saved, the form opens in a modal, and the stock only posts once you confirm the form.

Page layout

┌────────────────────────────────────────────────────────────────────────┐ │ Title: Move stock through <flow name> │ │ Subtitle: Moving from <source> to <target> │ ├────────────────────────────────────────────────────────────────────────┤ │ Route map — 1 DEF → 2 LOC2 (here now) → 3 LOC3 → 4 LOC4 (final) │ ├──────────────────────────────────┬─────────────────────────────────────┤ │ SOURCE — FROM <loc> │ TARGET — TO <loc> │ │ │ │ │ Filter chips · search │ Live summary of the rows currently │ │ Row list with checkboxes │ selected, grouped by product/UOM │ │ Inline qty editor per row │ │ ├──────────────────────────────────┴─────────────────────────────────────┤ │ REQUIRED TO RELEASE FROM <loc> • Pending │ │ <Form name or picker> │ ├────────────────────────────────────────────────────────────────────────┤ │ TO MOVE 1 row · 10 UNIT CUSTART … [ Save & open form]│ └────────────────────────────────────────────────────────────────────────┘

Flow list page

The first screen you see when you open Stock Movement Flow.

In progress section

A collapsible block at the top of the list. Collapsed by default — click the header to expand. Each card represents a draft movement batch whose form is still pending:

  • Batch reference (e.g. MVB000078) and status badge (Pending / Awaiting approval / Confirmed).
  • Created on date.
  • From → To locations derived from the first movement in the batch.

Clicking a card opens the Batch Summary modal — see below.

The In progress section is collapsed by default each time the page is opened. Your collapse/expand choice is not remembered between visits.

Flow cards

Each active flow appears as its own card showing the flow name and description, with an Open button that navigates to the detail page.


Batch Summary modal

Reached by clicking a card in the In progress section. Replaces the older "jump straight into the form" behaviour with a confirmation step so you can see what's in the draft before deciding what to do.

SectionWhat it shows
HeaderBatch reference and the form status badge.
Created onDate and time the batch was saved.
From → ToSource and target locations (derived from the first movement).
MovementsA card for every movement in the batch — product, supplier (if any), batch number, qty, and UOM.
Required formThe form template, plus an Open form button that closes this modal and launches the form modal.
Footer infoA reminder that stock posts automatically once the form is completed (and approved, where applicable) — there is no manual post step.
Delete draftInline confirmation (Yes, delete / Cancel) that deletes the draft batch and its movements.

Flow detail page

Route map

The horizontal strip at the top of the page. Each node represents one step in the flow:

Node stateMeaning
Done (orange filled, with checkmark)Earlier step. You can still click it to move stock from its location.
Here now (large orange)The step currently selected as the source. Stock listed below is from this step's location.
Moving to (smaller orange)The next step — this is the target for the move.
Later (grey)Steps after the target. Click to move stock from there instead.
Final (greyed out)The final step in the flow — not selectable as a source because there's nowhere to move stock to.

Click any non-final node to make it the source. The source list and target panel update accordingly. Your row selections are preserved across rows refresh but reset whenever you change steps.

Source stock list (left)

Lists every on-hand row at the source location.

Column / controlNotes
CheckboxTick to include the row in the batch.
ProductProduct code and description, plus pack-size and batch number on the sub-line.
Supplier (RM only)Supplier name on the sub-line for raw-material rows.
Available qtyThe current on-hand quantity at this location, with UOM.
MOVE qtyInline number input — defaults to the full available qty when you tick the row. Edit to move part of the row. The qty can't exceed the available qty.

Filters: Above the list you'll find supplier and product dropdowns plus a free-text search across product, supplier, and batch number. Filters are cosmetic only — they don't affect your existing selection.

Open-movement warning: A yellow banner appears on any row that already has an unposted (created) movement against it (i.e. a draft batch elsewhere is reserving that stock). The text reads "Unposted movement exists for this row — finish or void it before moving this stock again." You can still tick the row, but doing so will create a second pending movement against the same stock; sort that out via the In progress section first.

Target panel (right)

A live summary of what's queued for the move:

  • The target location code and description.
  • The selected rows count and products count.
  • One chip per product+UOM group with the running total (e.g. 10 UNIT CUSTART - Custard Tart). Quantities across different UOMs or products are not summed together — each appears as its own chip.

Required to release card (form gate)

Visible only when the source step has a form configured.

  • Eyebrow:Required to release from <location>.
  • Form name when a single template is locked to the step, or a dropdown labelled "Select form" when the step has a form-template group and there are multiple options.
  • Status badge:Pending until the form is confirmed, then Completed.
  • Pre-save hint: A yellow note appears beneath the picker reminding you that Save & open form saves the movement as a draft and opens the form — stock only posts once the form is confirmed.
  • Open form button: Appears on the right once the batch has been saved as a draft. Click it to re-open the form modal.

Picker rules:

  • Only templates that have a published version appear in the dropdown. If a template has been created but never had a version published, it's hidden.
  • When a step's group has only one published template, it's auto-selected.
  • When a step's group has no published templates at all, a red message appears: "No published forms available for this step. Publish a form template version to enable it." The action bar's save button stays disabled until a template can be picked.

Action bar

Pinned to the bottom of the page.

ElementNotes
TO MOVE summaryn row(s) · n products plus a chip per product+UOM group.
Save & open form → (when a form is required)Disabled until at least one row is selected and a template is picked.
Move stock to LOCx → (when no form is required)Disabled until at least one row is selected.
Hover tooltipIf the button is disabled, hovering shows the reason ("Select at least one stock row to move." or "Pick the required form before moving.").

Saving and posting

What happens when you click the button:

Step requires no form

  1. The selected rows are bundled into a single movement batch and posted to the backend.
  2. Each row becomes an InventMovement in posted state — InventTran records are written, inventory is updated.
  3. The screen resets the selection and reloads inventory.

Step requires a form

  1. The batch is saved with each movement in created (draft) state — no InventTran is written yet, so on-hand quantities at the source are unchanged.
  2. A Form record is created from the chosen template.
  3. The form modal opens for you to fill in.
  4. Confirm the form to post the movements. The system writes InventTrans and updates inventory at that point.
  5. If the form has approval requirements, the batch stays in In Progress (status Awaiting approval) until the approval(s) are signed.
  6. If you close the modal without confirming, the batch stays in In Progress and can be resumed any time from the flow list.

If you delete a draft batch from the Batch Summary modal, the draft movements and the form record are removed — the stock returns to normal availability at the source.


Tips & FAQs

Why doesn't the "MOVE" qty accept more than the available qty? The qty input is clamped to the row's available on-hand quantity. To move more, split into multiple movements or check the source step is correct.

The picker only shows some of my form templates — where did the others go? Templates without a published version are intentionally hidden from the picker. Open the template in Forms → Form Templates, make sure it has an active version, then return to the flow.

I can't click Save & open form even though I've picked rows. A required form template hasn't been selected. The button's hover tooltip tells you what's missing — usually "Pick the required form before moving."

I selected rows but my selection cleared when I switched steps. That's by design — each step has its own source location, and selecting rows from one step into a batch targeted at a different next step would create the wrong movement. Switching steps always starts a fresh selection.

I confirmed the form but the batch is still in In Progress. The form template probably has an approval step. The batch will sit at Awaiting approval (or Approving) until the named approver signs it. Only then do the movements post.

Where does the In Progress filter come from? Each item in In Progress is a movement batch with a non-completed form attached. Once the form reaches Completed it drops off this list — the underlying batch and movements remain visible in inventory history.

Why is one row in the source list highlighted with a yellow banner? Another draft batch (yours or someone else's at this site) already has a pending movement against that stock. Resolve the existing draft via In Progress before queueing another move on the same row, otherwise you'll end up with two competing reservations.

The route map's final step is greyed out and I can't click it. The final step has nowhere to send stock to, so it can't be a source. Move stock to it from the second-to-last step instead.