Skip to content

Use Cases

“Which document actually takes stock out?” In manufacturing the answer is almost never the one you are looking at. A sales-order request, a job order, a work log and a packing order all move nothing; one supervisor’s FINAL on one production step does, and it carries none of the materials’ cost onto what it made. This page follows four shapes the module is used in, and for each one says who does the job, what happens out of sight, and how they know it went right. After the four shapes come what they share: where their figures come from, what goes wrong, what none of them does for you, and a month-end check.

The running example is GadgetSphere Sdn Bhd’s distribution arm, GadgetSphere Distribution Sdn Bhd (GSD), which makes a house-brand braided charging cable from bulk cable, connectors and retail boxes in a workshop at its Klang Valley warehouse (GS-KV-01), and builds accessory gift packs for the retail company’s 22 branches. The module’s screens use cable-industry words — coiling, drum type, cutting length — because that is the process they were built around; the example follows them.

Which shape is yours. If you only ever sell a cable, an adapter and a sleeve together, at one price, and never build the set ahead of time, you need none of these: that is a bundle, which holds no stock of its own and takes each child out at its own cost when the sale is finalised. Build the set ahead of time — sealed, counted as one unit on a shelf — and it is a gift pack (shape 3). Make it from materials in more than one step, on a machine, with an operator and a supervisor, and it is a route (shapes 1 and 2).

1. A route run against a sales order (make-to-order)

The shape. A corporate customer of GSD orders 2,000 two-metre braided cables at RM 4.50. The cable is made in three steps — cut, coil, pack-test — each a process template; the job template Braided cable 2 m chains them.

  1. Sales asks for production on the order line. On the Sales Order (Internal) line, the MRP tab’s request status is set to REQUESTED. With MRP_MANDATORY_FOR_NON_FINISHED_GOODS and ENABLE_MRP_JOB_ORDER_LINK on, the screen holds a line whose item lacks the Fast Moving Goods label until one of its three MRP statuses is Requested — no job order has to exist yet, and an order arriving through the API is not held at all.
  2. The planner approves, then raises the job order separately. In Production Planning and Monitoring, APPROVED on the Production Request is a status written on the sales-order line; it creates nothing. The planner raises a job order for 2,000 from the job template, links the sales-order line on its Sales Order Link tab, and generates the process instances: one per step, at the job order’s branch and location, each with planned inputs of Ratio × 2,000, stored at that moment.
  3. The planner holds the bulk cable on the day the cut starts. Reserve on the request’s bin grid writes a stock reservation that expires by the next calendar day. The upper grid’s temporary reservation is something else: it earmarks part of the job’s output for the order and holds no material.
  4. The floor works the cut; the supervisor finalises it. The operator logs each shift against the cut instance in Manufacturing Operations; the supervisor approves the logs, checks each input line’s bins and actual quantity, and sets the instance FINAL. 4,100 m of bulk cable leave stock; 2,050 cut lengths come in.
  5. The same cycle runs twice more, and the coil and pack-test instances turn READY only when every instance of the step before them is FINAL.
  6. The packing floor packs against the order (shape 4), and delivery and invoicing are Sales documents.

Behind the scene. FINAL saves the status and queues one finalisation run, then returns: the stock has not moved when the screen says FINAL. The run takes every input line out and every output line in by its actual quantity — not the planned one, and not the sum of the work logs — dates those stock lines when the run executes, sets the next step READY where the whole step is final, marks the instance POSTED and releases the bin locks its inputs held. That is all it does: no journal, no e-invoice, and no cost written back. Each stock line carries an amount of zero that costing ignores, so the bulk cable leaves at its running average (RM 2,460 at RM 0.60 a metre) and the cut lengths come in at whatever they last carried at GS-KV-01 — RM 0 on a first run. By the last FINAL, RM 3,300 of material has left stock and 2,000 finished cables sit at RM 0; the hub’s worked job has every line of the arithmetic. Invoice them like that and the cost of goods on the invoice reads RM 0, so the order shows a margin of RM 9,000 instead of RM 5,700.

Whose job, and how they know. Sales marks the line the day the order is confirmed. The planner raises and links the job order, generates its instances, and reserves the input bins on the morning the cut starts — and knows it worked when the line’s MRP tab shows the job order. The supervisor presses FINAL only over approved logs and checks, a minute later, that FINAL is greyed (the run finished) and that Stock Balance moved by the actual quantities. The accountant decides what a finished cable cost — RM 1.65 in materials, plus labour and overhead if your policy absorbs them — and sets it with Reset MA in Stock Adjustment before the invoice is finalised; they know it worked when Stock Balance shows the cable at RM 1.65 at GS-KV-01.

2. The same route run to stock (make-to-stock)

The shape. GSD keeps one-metre cables on the shelf for the 22 retail branches, and a run of 5,000 is made whenever the shelf runs low. Nothing in the route changes; only the start does. There is no sales order, so the planner raises the job order from Master List with no sales-order link, and the job order’s process status and completion date are the only record of when the batch was done.

Deciding when to run is the planner’s job, not a calculation the module makes. The Outstanding Report and the packing floor’s “outstanding” figure disagree. The figure the Packing Order applet’s Auto Coil Supervisor fetches when an output line is added is the ledger quantity at one location less the open quantity on FINAL sales orders across all locations. The CSV export’s Outstanding Qty adds up every document line of the item — invoices, receipts and returns as well as orders — and repeats that total on every location row, so its Net Outstanding is not a shortfall you can plan against. Take Balance Qty from the export and compare it with your open orders and the branches’ replenishment needs yourself.

Behind the scene. The same finalisation run as shape 1, so the same cost problem with one twist: the second run of a cable comes in at the cost the cable carries by then — RM 1.65 if the accountant set it after the first run — whatever the bulk cable cost this time. A make-to-stock item made month after month keeps the price someone set once until someone sets it again.

Whose job, and how they know. The planner reads Balance Qty against the open orders weekly and raises a run before the shelf is empty; they know it is right when no branch order for the cable waits on stock. The accountant revisits the cable’s cost whenever bulk cable or connector prices move by more than your materiality threshold, and knows it is right when the cable’s moving average in Stock Balance matches the cost they worked out for the latest run.

3. A gift pack or kit without a route

The shape. For a year-end promotion, GSD builds 300 gift packs — one cable, one wall adapter, one sleeve, shrink-wrapped — at GS-KV-01, and transfers them to the branches. The components cost RM 1.65, RM 12.00 and RM 3.35, so a pack is worth RM 17.00. There is no machine, no shift and no supervisor: one step at one location. That is the Stock Conversion applet, owned by Inventory and traced in its kitting use case.

Read the tabs literally. A line on the Input tab goes into stock and a line on the Output tab comes out — the opposite of what a bill of materials means by the words. To build 300 packs, the pack goes on Input (300) and the cable, adapter and sleeve on Output (300 each). Put them the other way round and, once the conversion moves stock, you have unpacked 300 packs you never had.

Behind the scene. A FINAL conversion moves no stock: FINAL queues the conversion’s posting run, and that run only hands work to jobs subscribed to it, and none is. The document reads FINAL and Stock Balance is unchanged. Once it is connected, no cost passes from the components to the pack either — the pack comes in at its own last unit cost at that location, RM 0 for a new item.

What this is good for, beyond the promotion. A pre-built pack is an ordinary stock item with a balance of its own, so it moves to a branch on a transfer like any item, shows in Stock Balance as packs on the shelf, and is counted in a stock take as one unit. A bundle has no balance and is never counted; it is the better choice when the set is only ever put together at the till.

Whose job, and how they know. The stock controller keys the conversion and, after the first FINAL, opens Stock Balance at GS-KV-01 — the pack up by 300 and each component down by 300 is the only proof it worked; until it is, the Inventory kitting use case carries the alternative. The accountant gives the pack its RM 17.00 with Reset MA before the first branch sells one. The conversion’s edit form can link it to a job order when the components themselves came off a route.

4. The packing floor working a queue

The shape. The corporate order from shape 1 is packed onto drums for delivery, and the packing floor also packs orders for items nobody manufactured. The Packing Order Applet (Internal) is the floor’s worklist either way: a packing order knocked off from the sales order, its FINAL putting every line on the Operator Queue, the operator recording what was packed from which bins, and the supervisor approving or rejecting each line.

Behind the scene — what moves, and what does not.

  • Nothing moves stock. Every packing-order line carries quantity and amount signum 0. The finished cables were already in stock when shape 1’s last FINAL ran; the delivery order that follows is what the warehouse acts on. The Auto Coil screens are the exception, because they are process instances: their FINAL is the same cost-neutral stock event as shape 1.
  • The sales order counts as packed the moment the line is added to the packing order, while it is still an unsaved draft. Discard and Void bring the count back down, each only partly; a draft abandoned before it was saved leaves the order looking partly packed.
  • One approved line releases the whole reservation. Approval follows the sales order to its first stock reservation and releases all of it — including the part that held lines not yet packed.
  • Scrap is a lock, not a write-off. Scrap on a queue line locks the bin quantity against the packing-order line; it stays in stock until somebody adjusts it out.
  • The packing order’s own status never reaches COMPLETED. Read completion from the line statuses and the queue balances.

Whose job, and how they know. The packing supervisor approves lines in the order the delivery will leave, and raises one reservation per sales-order line where lines are packed on different days. The stock controller adjusts out the month’s scrap locks at period end. They know the floor is clean when every queue line for a delivered order is approved and its balance is zero.

What every one of these has in common

  • One kind of step moves stock: a finalised process instance (shapes 1, 2 and the Auto Coil in shape 4), and a finalised stock conversion once its posting chain is connected (shape 3). Neither carries the inputs’ cost into the output, so every made or built item is worth what someone sets.
  • Nothing in the module posts a journal. The ledger sees the purchase of the materials and the sale of the product. The production journals in between are the ones a person causes: the Reset MA that costs the output, and — if your accounts carry work-in-progress — the month’s WIP value keyed on the Closing Stock Balance WIP tab of the Chart of Account applet, which Month End Processing posts debit STOCK_BALANCE_WIP, credit COGS_WIP (how).
  • The only approval is the work log’s, and the finalisation run does not read it: an instance finalised over a PENDING log moves its lines anyway. Whoever holds SHOW_SUPERVISOR_VIEW is the control. Every other status is whatever the last person set.
  • What must exist first is the same for every route: each item in Inventory Item Maintenance, a process template whose output is the finished item, a job template, bins at the job’s location, and a Doc Flow row from the sales order to the packing order. Configuration lists each with its symptom.
  • What a finalised step lets you do next. The made item is in stock for Sales to deliver and invoice and for the packing floor to pack; the next step turns READY; and the actual quantities become the only record a costing or WIP calculation has to go on.
  • What breaks elsewhere when a shape goes wrong. An uncosted item overstates the margin in Sales by its materials’ cost. A step finalised after the close moves its stock into the next month in Financial Accounting. One packing approval empties a reservation other lines were relying on. A scrap lock left alone overstates stock and understates the cost of sales until somebody adjusts it out.
  • Used alongside: Reset MA after each first run, a stock reservation on the day a job starts, Stock Balance after every FINAL, and the Closing Stock Balance at month end.

Where the numbers in these shapes come from

Every figure these shapes leave behind is either stored when something runs or worked out when you look, and the difference decides when it can be wrong.

FigureStored, or worked out when you lookFrom what, and when
The finished cable’s unit cost (shapes 1, 2)Stored on the stock balanceWhatever the cable carried at that location before the FINAL — RM 0 on a first run — until Reset MA sets it. The job never writes it
Cost of goods on the corporate invoice (shape 1)Stored: written back onto the invoice line after its costing job runsThe cable’s moving average at that moment — RM 0 if the invoice is finalised before the accountant’s Reset MA
Planned input quantities (shapes 1, 2)Stored when the instances are generatedRatio × the job quantity at that moment. A template edited later does not reach instances already generated
What left and entered stock (shapes 1, 2, 4)Stored when the finalisation run executesThe actual quantities on the instance’s lines, dated when the run executes — not the planned quantities, the work logs or the job’s dates
Base Qty when an operator picks an input binWorked out each time the picker opensThe bin’s quantity less reservations and every active bin lock, including locks this job already holds
Balance Qty and Outstanding Qty (shape 2)Worked out when you run the reportBalance Qty: the location’s ledger quantity. Outstanding Qty in the export: every document line of the item, all locations
The gift pack’s cost (shape 3)Stored on the stock balanceIts own last unit cost at that location — not its components’ — until Reset MA
A sales order’s packed quantity (shape 4)Stored on the sales-order lineRaised when the line is added to a packing order, lowered by Discard or Void
Work-in-progress on the balance sheetStored in the journal at Month End ProcessingThe value keyed on the Closing Stock Balance WIP tab. Nothing in the module computes it

When one of these shapes goes wrong

What you seeThe usual causeWhat to do
The corporate order’s margin looks far too good (shape 1)The invoice was finalised before the cable was costed, so its cost of goods is RM 0Reset MA on the cable now; agree with your accountant how to correct the month’s margin, and cost the output before the next invoice
Production Request is empty although orders are confirmed (shape 1)A line appears only once its MRP tab reads REQUESTED, and that tab shows only with Enable MRP job order link onSwitch the setting on in Sales Order (Internal) and mark the lines
APPROVED a request, and no job order appeared (shape 1)Approval writes a status on the sales-order line and creates nothingRaise the job order in Master List and link the line on its Sales Order Link tab
The bulk cable reservation was gone when the cut started (shape 1)The stock reservation expires by the next calendar dayReserve on the morning the step starts
FINAL was pressed and Stock Balance has not moved (shapes 1, 2)The run is queued after the status saves; it has not run, or failed before marking the instance POSTEDReopen the instance: a live FINAL button means it is not POSTED yet
Production you know was done is missing from the month-end stock report (shapes 1, 2)The stock lines are dated when the run executes and the instance was finalised after month end — or it was finalised in time and the item had no ordinary line (a sale, a receipt, an adjustment) between the FINAL and month end, which the dated reports and the close need to pick it upFinalise the period’s instances before the close; a late one stays in the month it ran. For the second cause, run the accountant’s check in Reports
The export says every location is short (shape 2)Its Outstanding Qty adds every document line of the item and repeats it per locationPlan from Balance Qty against the open orders
A gift-pack conversion reads FINAL and nothing moved (shape 3)The conversion’s posting chain is not connectedRecord the build by the route the Inventory kitting use case gives
Components went up and the packs went down (shape 3)Components keyed on Input and the pack on OutputReverse the build; Input is into stock
“Packing Qty should not be greater than Order qty” although nothing has been packed (shape 4)A packing-order draft was abandoned after its lines were added, so the sales-order line still counts them as packedHave the packed quantity corrected on the sales-order line through the API (packing applet, troubleshooting)
Lines still waiting to be packed lost their stock hold (shape 4)The first approved line released the whole reservationRe-reserve the remaining lines; next time, one reservation per line
Scrap keeps piling up in stock (shape 4)A scrap lock holds the quantity back; it is not a write-offAn adjust-out at period end

What none of these shapes will do for you

Each holds in every shape on this page, and each is still somebody’s job.

  • No step costs what it made. The accountant works out each made item’s and each pack’s cost after its first run, sets it with Reset MA before the first sale, and revisits it when material prices move.
  • Nothing decides when to make, or how much. No requirements run nets demand against stock or raises purchases for the materials. The planner does it from Balance Qty and the open orders, and raises the material purchases in Purchasing.
  • Nothing values work-in-progress. The accountant works out the month’s figure from the job orders still open, the steps already finalised and what their materials cost, keys it on the Closing Stock Balance WIP tab, and reads the journal the first close writes.
  • Work-log approval does not hold FINAL. The production manager agrees with every supervisor that no instance is finalised over a PENDING log, and keeps SHOW_SUPERVISOR_VIEW to the people who should press it.
  • Completing a job order checks nothing. Before setting COMPLETED, the planner opens its Process Instance tab and confirms every active row reads COMPLETED — a finalised instance reads FINAL, which is not the same word.

How you know a month of production went right

About fifteen minutes on the last working day, before the accountant runs the close. Each step names the shape it checks.

  1. Nothing is waiting for FINAL (shapes 1, 2). On Supervisor PI, no instance whose work was done this month still offers a live FINAL button. You are done when every one is POSTED or has a reason to wait.
  2. Every made item has a cost (shapes 1, 2, 3). In Stock Balance at GS-KV-01, the cable and the gift pack carry the cost the accountant set, not RM 0 or a figure from before material prices moved. You are done when each matches the worked-out cost.
  3. Completed means completed (shapes 1, 2). Every job order set COMPLETED this month has no active instance in another status. You are done when the check finds none.
  4. The packing floor is clean (shape 4). Every queue line for an order delivered this month is approved with a balance of zero, and the month’s scrap is adjusted out. The locks stay on Scrap & Short after the write-off, so compare totals rather than looking for an empty list. You are done when the quantity adjusted out equals the month’s Scrap & Short total per item and location.
  5. The WIP figure is the one you worked out, if your accounts carry it. You are done when the Closing Stock Balance WIP tab shows it with Select Manual ticked.

The module’s three checks worth doing carry the weekly versions.

Where to go next