Skip to content

Production Planning and Monitoring Applet

The production planner’s desk: the sales-order lines Sales has flagged for production, the job order raised for a finished item against a job template, and the process instances the shop floor will run. Nothing here posts to the ledger and the job order itself moves no stock — stock moves only when a process instance is finalised in Manufacturing Operations, and no cost passes from the inputs to the finished goods, which keep the unit cost they already had at that location (zero if never costed there). Approving a production request creates no job order; the planner raises it in Master List and links the sales-order line by hand.

Your job, and the screen for it

The jobScreen or tabRead
Act on a sales-order line flagged for production — approving creates no job order; raise one in Master List and link the lineProduction Request, open the line, (P) Production Status or (S) Schedule Status; then the job order’s Sales Order Link tab › AddScreens and menus
Raise a job order and its shop-floor steps — pick the group named after the item, because the list shows every group on the tenantMaster List › create, choosing Process Instance Group; save, then Generate Process Instance on the Process Instance tabFields; Before you can use it
Hold material for a job — a bin reservation made on the day the job runs; the job-order temporary reservation holds no materialProduction request › Stock Planning tab, the bin grid › ReserveChoosing a manufacturing tool for the job
Close a job order — first confirm every active instance reads COMPLETED, because the form does not checkThe job order’s Process Instance tab, then Process Status on MainChecking that a job ran; Lifecycle and effects
Compare demand with stock — plan from Balance Qty; Net Outstanding counts only draft sales ordersOutstanding Report, Generate for the CSVLifecycle and effects
Set up before the first job orderJob templates in the Process Maintenance applet; for requests from Sales, Enable MRP job order link in the Sales Order (Internal) appletBefore you can use it

Overview

The Production Planning and Monitoring applet is the production planner’s desk. It lists sales-order lines that Sales has flagged for production, lets the planner approve or reject each one, raise a job order for a finished item against a job template, expand that template into the process instances the shop floor will execute, and compare outstanding demand with stock on hand. It sits between the Sales Order (Internal) applet, where the request is flagged, and the Manufacturing Operations applet, where operators log work against the instances it generates.

The registry name of the applet is Production Planning and Monitoring Applet; its registry code is productionPanningAndMonitoringApplet (the typo is in the product). The source repository is named after the job order, and the sidebar title in the build reads “Production Planing & Monitoring Applet”. Nothing in this applet posts to the general ledger, and the job order itself moves no stock; stock moves only when a process instance is finalised (see Lifecycle and effects).

Where it fits

PositionApplet / documentRelationship
Configuration beforeProcess MaintenanceMachines, process types, process templates and job templates. The job order form keeps CREATE disabled until a Process Instance Group (a job template group) is picked; the server itself accepts a job order with none and only refuses Generate Process Instance for it (see Fields).
Master data beforeInventory Item Maintenance, OrganizationThe finished item, and the branch and location the job order is raised for.
UpstreamSales Order (Internal)A sales-order line’s MRP tab is where Sales sets the (P) Production, (S) Schedule or (Ex) Existing Stock status to REQUESTED. That line is what this applet’s Production Request screen lists.
Same layerStock Reservation, Stock Balance, Stock AvailabilityThe Production Request view’s Stock Planning tab reserves bins through the stock-reservation endpoints and shows availability by job order.
DownstreamManufacturing OperationsOperators pick up the process instances generated here, log work, and finalise them; finalisation is what moves stock.
DownstreamPacking Order (Internal)Packs the output of a job order; carries its own Job Order and Production Request screens over the same tables.

A second, industry-specific build of this applet exists with the same Master List, Processes and Sales Order screens but without Production Request and Outstanding Report. The Applet Store installs the general build only; the industry build is not offered there. This page documents the general build, which is the one you get.

Screens and menus

The sidebar has six entries plus Settings and Personalization. The applet opens on Master List.

MenuWhat it shows
Master ListJob orders: number, date, item, ad-hoc quantity, sales-order quantity, total, UOM, transferred quantity, process status, completion date. Create opens a two-tab form (Main Details, Process Instance); an existing job order opens with tabs Main, Sales Order Link, Department Hdr, Attachments, Process Instance.
ProcessesProcess instances across all job orders. You choose a Process Type first; the grid then lists the active instances of that type, with filters on process status and priority. Opening a row lets you change priority and process status.
Sales OrderEvery sales-order line that has been linked to a job order, with the linked job order number, scenario option and job document status. Item Details carries a Stock Balance Summary button.
Production RequestSales-order lines whose MRP request status is set. Columns: doc short code, doc number, (P) Production status, (S) Schedule status, (Ex) Existing Stock status, MRP remarks, company, branch, item, order quantity, UOM, customer, sales agent, transaction date. Opening a line shows a read-only Main tab where only the two status drop-downs and the remarks are editable, and a Stock Planning tab.
Outstanding ReportPer item and location: balance quantity, outstanding quantity and net outstanding. Filter by location, item code and item category (levels 1–10). Generate downloads the same rows as mrp_outstanding_report.csv.
SettingsField Settings (default), Default Selection, Printables, Custom Status, Email Template, Webhook, Feature Visibility, Permission Wizard, Permission Set, User / Team / Role Permission.
PersonalizationPersonal default selection; sidebar.

Two further screens exist in the build but cannot be reached from any menu: a Requested Job Order listing (job orders in REQUESTED or REJECTED status, with approve-to-PLANNED and reject actions) and an Orders to Produce listing (unresolved sales orders by job). They are described here only so that the names are not mistaken for missing features.

Production Request is a sales-order line, not a document of its own. There is no production-request record anywhere in the product. The screen lists sales-order lines that carry one of the three MRP request statuses, and saving the view saves the whole sales order with the line’s (P) status, (S) status and MRP remarks changed. The status drop-downs in this applet offer –None–, APPROVED and REJECTED; REQUESTED is shown but disabled, because it is set on the other side — the MRP tab of the sales-order line in Sales Order (Internal) offers exactly the opposite set (REQUESTED enabled, APPROVED and REJECTED disabled). Nothing generates a request automatically when a sales order is confirmed, and approving a request does not create a job order: the planner raises the job order in Master List and links the sales-order line on its Sales Order Link tab.

The Stock Planning tab of a production request has two grids. The upper one lists job orders for the same item with their available (ad-hoc) quantity, reserved quantity, temporary reservations and estimated completion date; Reserve opens a dialog capped at min(available − reserved − temporarily reserved, sales-order line quantity) and creates a temporary job-order reservation against the line. The lower one lists bins with total, available, locked, reserved and packed quantity; Reserve there creates a stock reservation set to RESERVED with an expiry of the next calendar day, and a bin-reservation link expiring 24 hours later, through the same endpoints the Stock Reservation applet uses. The dialog’s text “this reservation will expire 24 hours after submission” is not true of the job-order temporary reservation — see Lifecycle and effects.

The Process Instance tab of a job order lists the instances generated for it (process, machine, output item, status, Active?). Generate Process Instance is enabled once and disabled after the instances exist; the + button adds a single instance by choosing a process template by hand; the Active? cell switches an instance off so a step can be skipped.

The Sales Order Link tab lists linked sales-order lines with order quantity and job-order quantity. Add lists sales orders for the item with Order Qty (line quantity minus quantity already on job orders) and an editable Qty To Add; the sum of the added quantities becomes the job order’s Sales Order Quantity.

The Stock Balance Summary (Sales Order menu → Item Details) shows system stock balance, total sales-order quantity, total reservation quantity, total quantity on incomplete job orders, and available stock with and without reservations, with Details drill-downs into the reservations and the job orders. It reads the same summary as the Stock Availability screens.

This page is illustrated in words only at present. The seventeen images the previous version of this page embedded all showed a live tenant’s code, branch codes, customer names, item codes or a user’s photograph, and were removed on 2026-09-15.

Configuration

Before you can use it

PrerequisiteWhereWhy
A job template for the finished item, built from process templates, process types and machinesProcess MaintenanceThe job order’s Process Instance Group drop-down lists every job-template group on the tenant, not only this item’s, so pick the group named after the item (<item name>-OPT-n). The server refuses a group that matches no job-template link; an empty group is stopped by the form, not the server.
The finished item as an inventory itemInventory Item MaintenanceThe server checks that the item exists.
Branch and locationOrganizationRequired on the create form; the generated process instances inherit the job order’s branch and location.
The MRP tab enabled on sales-order lines (the Sales Order’s enable MRP job order link setting)Sales Order (Internal)Without it Sales has no way to set a line to REQUESTED, and the Production Request screen stays empty.
Server-side permission to read and write job ordersSettings → Permission Wizard / Permission Set in this appletTNT_API_DOC_INTERNAL_JOB_ORDER_CREATE / READ / UPDATE / DELETE govern the job-order document type; the manufacturing actions carry no applet-specific permissions of their own.

Applet settings

Settings are saved together, once per tenant for this applet. Anyone who can open Settings can change them; the applet has no client-side permission screen of its own. Each row below has a working control and is read by a screen.

SettingWhere setWhat it controlsDefaultEffect when changed
DEFAULT_BRANCH, DEFAULT_LOCATION, DEFAULT_COMPANYDefault SelectionPre-fills branch and location on the job-order create form (company follows the branch). Choosing a branch that has a main location copies that location.nullNew job orders start with the new branch and location; existing ones are untouched.
ENABLE_MANUAL_JOB_ORDERField SettingsMakes the Job Order No field editable on create. When on, the number is checked against existing job orders before save.off (field read-only; number generated by the sequence)Off → number always generated. On → the user must type a number; a duplicate is refused.
enableMrpEmails with mrpEmailTemplates.pStatus / .sStatusField Settings → MRP Email SettingsWhen on, changing a request’s (P) or (S) status e-mails the sales order as a PDF using the chosen notification template’s recipients and, if the template names one, its printable format. Sender is noreply+<tenant code>@akaun.com.offNo e-mail is sent when off or when the template for that status is empty.
ENABLE_CUSTOM_STATUS_1…5, ENABLE_CUSTOM_STATUS_HDR_n, ENABLE_CUSTOM_STATUS_LINE_n, NAME_CUSTOM_STATUS_HDR_n / _LINE_nCustom StatusUp to five header and five line custom statuses, each with a list of named values.all offEnabled header statuses appear as extra columns on the Sales Order listing and in the bin and job-order pickers under Processes.
PRINTABLEPrintablesThe sales-order printable selected for this applet.noneThe print action that would use it is switched off; selecting a printable currently changes nothing in this applet.
Email templatesEmail TemplateNotification templates this applet lists and edits; the P/S status e-mails above pick from them.none—

Keys declared in the settings model but rendered by no control in this applet (ENABLE_DIMENSION, ENABLE_PROFIT_CENTER, ENABLE_PROJECT, ENABLE_SEGMENT, ENABLE_SST, ENABLE_WHT) are not documented as settings; the Department tab shows its four fields unconditionally.

Document behaviour settings

None. The job order has no posting-status or workflow settings; its process status is set directly on the form. There is no approval engine behind APPROVED / REJECTED on a production request — they are two strings on the sales-order line.

Settings in other applets that control this applet

SettingWhere it is setEffect here
Enable MRP job order linkSales Order (Internal)Shows the MRP tab on a sales-order line, which is the only place a line is set to REQUESTED.
MRP_MANDATORY_FOR_NON_FINISHED_GOODSSales Order (Internal)With Enable MRP job order link also on, the sales-order screen holds a line whose item lacks the Fast Moving Goods label until one of its three MRP statuses is REQUESTED, so more lines reach the Production Request screen. A job order is not required, and the API does not apply the rule.
Branch main locationOrganizationDefault location when a branch is chosen on the job-order form or in Default Selection.

Feature visibility / permissions

Server-side: the four TNT_API_DOC_INTERNAL_JOB_ORDER_* permissions on the job-order document type. Client-side: none — the applet defines no SHOW_* / HIDE_* client-side permissions and none are registered for it.

Fields

Job order — Main Details

FieldMeaningRequiredNotes / validation
Job Order NoThe document numberNoRead-only unless ENABLE_MANUAL_JOB_ORDER; when typed, the server refuses a number that already exists (“JOB ORDER NUMBER ALREADY EXISTS”). Immutable after save.
Job Order DateTransaction dateNoDefaults to today.
Item Code / Item NameThe finished itemYes (code)Picked from inventory items; name is read-only. The server rejects a missing or unknown item. Read-only once process instances exist.
UOMUnit of the quantitiesNoCopied from the item; read-only once instances exist.
Branch, LocationWhere the job runs and where output landsYesPre-filled from Default Selection.
Sales Order QuantityQuantity promised to linked sales orders—Read-only; the sum of Qty To Add on the Sales Order Link tab.
Ad-Hoc QuantityQuantity made for stockNoFree entry.
Total QuantitySales-order + ad-hoc—Computed; this is the job’s base quantity. Changing it after instances exist queues the planned-input patch (see Lifecycle).
Process StatusWhere the job isNoPLANNED (default), IN_PROGRESS, COMPLETED, ON_HOLD, CANCELLED. Saving COMPLETED here is not checked against the process instances (see Lifecycle), so confirm on the Process Instance tab that every active instance reads COMPLETED first.
Estimated Packing Date, Completion DatePlanning datesNoInformational; the packing date feeds the Packing Order applet’s queue. There is no Due Date field on the job order.
RemarksFree textNoThe only free-text box on the job order — there is no Description field. It is what the job-order listing shows in its Remarks column, so it is the place for a note a planner should see without opening the job.

Job order — Department Hdr

Segment, Profit Centre, Dimension, Project — the four accounting dimensions, all optional, shown unconditionally.

Job order — Process Instance (create tab)

Process Instance Group (the job template group for the item) — required by the server before Generate Process Instance can run (“THE TEMPLATE HDR GUID IS NOT POPULATED”).

Production request — Main

All fields are read-only copies of the sales-order line (doc short code, doc number, company, branch, item, base quantity, UOM, customer, sales agent, transaction date, (Ex) Existing Stock status) except (P) Production Status, (S) Schedule Status (–None– / APPROVED / REJECTED) and MRP Request Remarks.

Lifecycle and effects

Posting proof block. Server document type Job Order (Internal) · amount signum 0 · quantity signum 0 · Dr/Cr equation none — nothing is journalled for the type · GL precedence not applicable · stock processor none at document level · VOID not applicable (the job order has no posting status; it is deleted, and deleting it removes its sales-order links).

What moves stock is the finalisation of a process instance, not anything on this applet’s screens. When an instance reaches FINAL, the finalisation run writes one inventory transaction per INPUT line (quantity signum −1) and per OUTPUT line (+1) and the stock balance is updated from those. Every such line is written at an amount of 0, and the amount is ignored: each item is costed at its own unit cost at that location, so the inputs’ cost never reaches the finished goods, which come in at zero only if they have never been costed there. No journal is posted by any manufacturing run.

Job-order status is one of REQUESTED, REJECTED, PLANNED, READY, IN_PROGRESS, COMPLETED, ON_HOLD, CANCELLED, EXPORTED, FINAL, PENDING_APPROVAL; the form offers five of them. The server holds one transition rule, refusing COMPLETED while any of the job’s active process instances is not COMPLETED (“SORRY! NOT ALL PROCESSES ARE COMPLETE, THEREFORE THIS JOB IS NOT READY TO BE COMPLETED…”), but only on a separate status route that no screen calls. The Master List form saves the status through the ordinary update, which validates no transition, so a job order can be set to COMPLETED here with instances still open. The check is the planner’s: before completing a job order, open its Process Instance tab and confirm every row with Active? ticked shows COMPLETED.

Generate Process Instance reads the job template group’s process-template links, renumbers them by sequence, and creates one process instance per link with the template’s process, machine, output item, the job order’s branch and location, and the link’s parent and group. Changing the job order’s base quantity afterwards queues a background job that re-scales the planned inputs.

Sales-order link. Adding a line records the link with the added quantity; the client refuses a Qty To Add above the line’s remaining order quantity and, once instances exist, above the job’s total quantity. Both checks are screen-side toasts; the server checks only that the referenced records exist.

Job-order temporary reservation adds the reserved quantity to the job order’s temporary-reservation total. A temporary reservation can carry an expiry, and the expired-reservation clean-up job acts on any that have passed it — it sets the linked sales order’s posting status to DISCARDED and permanently deletes the reservation. Nothing on this screen or on the server sets an expiry, so reservations created here never expire and are never picked up — the “24 hours” hint in the dialog describes nothing that happens. If a reservation were ever created with an expiry, its expiry would discard the customer’s sales order.

Outstanding report and the figure called outstanding on the packing floor do not agree. The figure the Packing Order (Internal) applet’s Auto Coil Supervisor fetches when an output line is added is the ledger balance at that line’s location less the open quantity on posted (FINAL) sales orders across all locations. The exported report’s Balance Qty is the location’s ledger quantity, but its Outstanding Qty adds up only the quantity on sales orders still in draft at that location — an order drops out once it is finalised, even while it still owes stock — so its Net Outstanding is not a shortfall you can plan against. Use Balance Qty from the export and compare it with your open sales orders yourself (see Manufacturing reports). Either way it is a query, not a planning run: there is no materials-requirement explosion, no purchase suggestion and no scheduling engine behind it.

The four manufacturing applets together

A job order is planned here and carried out across the folder’s other three applets. This section, formerly the Manufacturing folder’s overview, follows a job through all four.

What each applet writes, and the one step that moves stock

The four applets share one set of production records and are used in this order.

AppletWhose screenWhat it writes behind the screenWhat will not happen
Process MaintenanceWhoever owns the production recipeMachines, process types, process templates (what one step consumes and produces, by Ratio) and job templates. Saving a job template starts a background task that walks from the templates producing the item down through their inputs and saves each distinct path as a group named <item name>-OPT-<n>It moves no stock and posts nothing. Its ratios set planned quantities only
Production Planning and MonitoringThe production plannerA job order for one item against one of those groups; Generate Process Instance creates one process instance per step, at the job order’s branch and location. Its Production Request screen writes two status columns and a remark on the sales-order lineApproving a production request creates no job order. The job order moves no stock and posts nothing
Manufacturing OperationsOperators (Operator PMC) and the floor supervisor (Supervisor PI)Work logs per shift, bin locks on the input bins chosen, output bins declared. The supervisor’s FINAL queues the finalisation run: every input line out of stock, every output line in, the instance marked POSTED, the next stage set READY once its whole stage is FINAL, the input bin locks releasedNo journal (nothing posts to a work-in-progress account), and no void: changing the status afterwards does not run the finalisation again or reverse its stock lines
Packing Order (Internal)The packing desk and its supervisorA packing order, usually knocked off from a sales order. Its Final puts every line in the Operator Queue; the supervisor’s Approve cuts the bin, records the packed bins and releases the sales order’s stock reservationThe packing order moves no stock and posts nothing. Its own packing status never reaches COMPLETED. Its Auto Coil screens are the one place in it that moves stock: finalising a coiling instance there moves its lines by their own route, with the same cost result

Why the finished item does not carry the cost of its materials. Each line the finalisation run writes carries an amount of RM 0, which costing ignores: the materials leave at their running average, and the item made comes in at the unit cost it already carries at that location. If it has never been costed there, that is RM 0. Neither unit cost moves; the materials’ cost leaves inventory and reaches no finished item (what moves stock, and at what value). Until that changes, the accountant decides the finished item’s cost and sets it with Reset MA in Stock Adjustment before the item is sold (best practice 1).

Choosing a manufacturing tool for the job

You want toUseRather than
Describe how a product is made, onceA process template per step and a job template per finished item, in Process MaintenanceBuilding each job order’s steps by hand with the + button
One step at one location with no machine and no operator — a kit, a relabelStock Conversion, one document; check Stock Balance after its first FINAL, and expect no cost to pass from components to kit there either (best practice 9)A job order, which needs a recipe, instances, work logs and a supervisor
Make a sales order’s line, and trace the job back to itThe line’s MRP tab set to REQUESTED by Sales, then a job order in Master List with the line added on its Sales Order Link tabApproving the production request and waiting for a job order: approval creates nothing
Hold material for a job that runs laterA stock reservation, from the bin grid of the production request’s Stock Planning tab or the Stock Reservation applet. It expires by the next day, so make it on the day the job runs (best practice 7)The job-order temporary reservation in that tab’s upper grid, which earmarks part of a job order’s output for the line rather than material, never expires, and is best treated as a note
Record what was packed against a customer’s orderA packing order knocked off from the sales orderA packing order built by item search, which leaves the sales order’s packed quantity untouched
Write scrap offScrap on the packing order’s Operator Queue tab, and then an adjust-out in Stock Adjustment at period end (best practice 10)Trusting the scrap lock, which only holds the quantity back from the bin pickers and leaves it in stock at full cost

The production figures, and what makes each

FigureWhere you see itHow it is made
The finished item’s unit costStock BalanceNot from the job. It is whatever the item carried at that location before the finalisation, RM 0 for a first run, until someone sets it with Reset MA
Planned input and output quantitiesA process instance’s Input Items and Output ItemsStored at the time the instances are generated: each line’s Ratio × the job order’s quantity. Changing the job order’s quantity afterwards queues a background job that re-scales them from the last step down; the two methods agree only while output ratios are 1
What leaves and enters stockStock Balance, after FINALThe actual quantities on the instance’s lines, which are the totals of the bins chosen and declared — not the planned quantities and not the work logs
Base Qty when choosing an input binManufacturing Operations › Select Bin No.Worked out each time: the bin line’s quantity less reservations and less every active bin lock, including locks this job’s own lines already hold. That is why a bin you can see on the shelf offers less than it holds (physical but not available)
Worklog TotalAn output lineThe sum of Quantity Produced over the work logs not REJECTED or REWORK. It does not move stock
Quantity Produced DiscrepancyA work logWorked out on the operator’s form only, as target minus produced. A quantity the supervisor corrects leaves the old discrepancy on the log, so compare the two quantities when approving
Outstanding and net outstandingThe planning applet’s Outstanding Report, and Auto Coil Supervisor in Packing Order (Internal)Two figures that disagree. The one Auto Coil Supervisor fetches for an output line is the ledger at that line’s location less open quantity on FINAL sales orders across all locations. The exported CSV’s Outstanding Qty counts only draft sales orders at that location, not the posted orders still owed, so its Net Outstanding is no shortfall to plan against (Reports)
Job order statusMaster ListTyped on the form. Saving COMPLETED is not checked against the job’s process instances
What a sales-order line counts as packedThe packing order’s KO For Sales Order tabRaised the moment a line is knocked off, before the packing order is saved; lowered by Discard or Void, each in its own partial way. An abandoned draft leaves it high

When manufacturing looks wrong

What you seeWhyWhat to do
Production Request is empty although orders are confirmedA line appears only when its MRP tab reads REQUESTED, and that tab shows only with the Sales Order’s Enable MRP job order link onTurn the setting on and have Sales set the line (planning applet, Troubleshooting)
The sales-order screen will not save a line until its MRP status is setMRP_MANDATORY_FOR_NON_FINISHED_GOODS with Enable MRP job order link, on an item without the Fast Moving Goods label. Any of the three statuses at REQUESTED satisfies it; no job order is required, and orders arriving through the API are not heldSet one of the three statuses to REQUESTED; items carrying the Fast Moving Goods label are exempt
Operator PMC is emptyNo instances generated for the job order, or the remembered search filters are still onGenerate the instances; clear the filters
FINAL is greyed outAn input or output line has no bin or no actual quantity, or the instance is already POSTEDFill both tabs (Manufacturing Operations, What FINAL does)
The finished item shows a cost of RM 0It had never been costed at that location, and finalisation carries no cost to itSet it with Reset MA, before it is sold
A job order reads COMPLETED with instances still openThe Master List form saves the status without checking the instancesMove each active instance to COMPLETED on Supervisor PI. A finalised instance reads FINAL, which is not COMPLETED
A drum on the shelf offers less than it holdsReservations and bin locks, including this job’s own, come off Base QtyGo by Base Qty, not Ctn Qty; release or finish the job holding the lock
The stock that left is not what the operator asked forA part-drawn bin is recorded as whole containers plus one cut container, which equals the request only on a single-container binCompare the Bin No Listing with the request before SAVE, and before anyone presses FINAL
A packing order’s Operator Queue stays empty after FinalOne line failed the first queue step, so none moved onSee the packing page’s Troubleshooting: the order is voided and raised again
Approve on a packing line does nothing, or shows a general errorNo length marking on the row; or no acceptance criterion, so the completion test errors after the balance is writtenAdd a marking; set the criterion before approving (packing, Supervisor approval)
A reservation was released after only one line was packedApproval releases the sales order’s whole reservation on the first approved lineRaise one reservation per sales-order line if lines are packed at different times
Scrap keeps piling up in stockA scrap lock is not a write-offAdjust it out at period end against the agreed scrap account

Checking that a job ran

Reopen the finalised instance on Supervisor PI. Its FINAL button is greyed because the finalisation run marks the instance POSTED, and the button stays off on a POSTED instance; if FINAL is still live after you pressed it, the run has not finished. Then open Stock Balance at the job order’s location: since the FINAL, each input item has fallen and each output item has risen by the instance’s actual quantities. Then read the finished item’s moving-average cost. If it reads RM 0 or an old figure, nobody has costed it yet. Last, open the job order’s Process Instance tab: every row with Active? ticked should read COMPLETED before the job order does. That is about a minute per job, and it catches the three silent gaps: a run that has not finished, a cost nobody set, and a job closed early. The module’s three checks worth doing carry the weekly, monthly and period-end versions.

What these applets leave to people, and who does it

  • Cost the finished item. No step transfers the materials’ cost. The accountant decides the cost, sets it with Reset MA after each first run and before the sale, and checks it in Stock Balance.
  • Post any production journal. Nothing in the module is journalled: nothing posts to a work-in-progress account, and there is no labour or machine absorption and no variance. The accountant works the month’s WIP value out from the open job orders and keys it on the WIP tab of the Closing Stock Balance in Chart of Account, which Month End Processing posts; absorption and variance, where the accounts need them, are a manual journal in Financial Accounting built from the quantities (what posts to the ledger).
  • Plan materials. There is no requirements run, no purchase suggestion and no capacity scheduling behind “MRP”; it is the module’s name. The planner reads Stock Balance and the open sales orders and raises purchases by hand.
  • Close a job order honestly. The status rule on the server is not applied by the form. The planner confirms every active instance reads COMPLETED first.
  • Hold material. The Stock Planning tab’s job-order temporary reservation earmarks output and holds no material; a stock reservation does, and the planner makes it on the day the job runs.
  • Write off scrap. The production supervisor and the stock owner total the Scrap & Short listing at each period end and raise the adjust-out.
  • Approve anything through Approval Settings. The work log’s PENDING, APPROVED, REJECTED and REWORK and the packing supervisor’s Approve button are the module’s own approvals, and neither uses the approval engine; who holds SHOW_SUPERVISOR_VIEW is the control.

Prerequisites, blast radius and siblings

  • Must exist first: every input, output and finished item in Inventory Item Maintenance; a process template whose output is the finished item, or the job template stops with “No BOM options found for this item”; a job template, or the job order form has no group to offer; machines typed Packing for the packing screens, which list no other; bins at the job’s location; the SHOW_SUPERVISOR_VIEW client-side permission for whoever presses FINAL, or Supervisor PI opens on 404; for packing against a sales order, a Doc Flow row from the sales order to the packing order in Organisation, or there is no KO For tab.
  • Downstream: the FINAL is what lets you sell what was made; the stock it writes is what the Sales Invoice later takes out, at whatever cost the finished item carries by then; the sales order’s reservation is released by packing approval; the work logs and quantities are all a manual production journal has to go on.
  • Siblings, and when to choose which: Stock Conversion for a one-step repack, a job order for a route; a stock reservation to hold material, never the job-order temporary one; a bundle when the item is never made at all, only sold as a set.
  • Blast radius, or what breaks elsewhere: a finished item sold before anyone costs it goes out at the cost it carried before the job, RM 0 after a first run, so the margin on that sale is overstated by the materials’ cost; another item’s group on a job order runs the wrong steps and consumes the wrong materials; a packing approval empties a reservation other lines were relying on; an unwritten scrap lock overstates stock until period end.
  • Used together: Sales Order (Internal), Production Planning and Monitoring, Manufacturing Operations and Packing Order in that order on a make-to-order job, alongside Stock Adjustment after each first run and a Stock Reservation on the day a job starts.

Related applets

  • Process Maintenance — defines the machines, process types, process templates and job templates that a job order’s Process Instance Group drop-down lists.
  • Manufacturing Operations — where supervisors prioritise and operators log work on the process instances generated here; finalising an instance there is what moves stock.
  • Packing Order (Internal) — packs job-order output; its own Job Order and Production Request screens read the same tables.
  • Sales Order (Internal) — the MRP tab of a sales-order line is where a production request starts; the Sales Order Link tab here points back at it.
  • Stock Reservation — the bin reservations made from the Stock Planning tab are ordinary stock reservations and appear there.
  • Stock Balance and Stock Availability — the Stock Balance Summary and the Outstanding Report read the current-location stock balance.
  • Inventory Item Maintenance and Organization — the item, branch and location a job order is raised for.

Troubleshooting

SymptomCauseFix
Production Request is empty although Sales has confirmed ordersConfirming a sales order sets nothing; a line appears only when its MRP tab status is REQUESTED.Enable MRP job order link in Sales Order (Internal) and have Sales set the line’s (P) or (S) status.
APPROVED a request but no job order appearedApproval only updates two columns on the sales-order line.Raise the job order in Master List and link the line on its Sales Order Link tab.
Process Instance Group drop-down is emptyNo job template on the tenant has a process group yet (the list is not filtered by item).Build the job template in Process Maintenance; “No BOM options found for this item” is the server’s message when the template has no options.
“THE TEMPLATE HDR GUID IS NOT POPULATED” on GenerateThe job order was saved without a Process Instance Group.Select the group on the create tab and save before generating.
“Qty to Add cannot be more than Order Qty” / “…more than Total Qty”Screen-side caps on the Sales Order Link tab.Reduce the quantity, or raise the job order’s ad-hoc quantity first.
A job order reads COMPLETED while some of its process instances are still openThe form’s save does not check the instances (see Lifecycle).Complete or inactivate the remaining instances in Manufacturing Operations, so the job order’s status matches the floor.
“JOB ORDER NUMBER ALREADY EXISTS”Manual numbering is on and the number is taken.Use another number or turn ENABLE_MANUAL_JOB_ORDER off.
Finished goods show zero unit cost after a job completesThe finished item had never been costed at that location, and finalisation carries no cost from the inputs: it costs each item at the unit cost it already has there (see Lifecycle).Set the finished item’s cost with Reset MA in Stock Adjustment before it is sold.
Changing the job order’s quantity did not change the planned inputs immediatelyThe re-scale is a queued background job, not an immediate update.Reopen the instance after the queue has run.

Related documentation

Last updated on