Skip to content

Packing Order Applet (Internal)

Overview

The Packing Order Applet (Internal) is the packing desk of the manufacturing module. A packing order is an internal document (INTERNAL_PACKING_ORDER) whose lines are the items and quantities to be packed, usually knocked off from a finalised sales order. Finalising the order pushes every line into an operator queue; a packing operator records what was packed, from which bins, with which length markings, and a supervisor approves or rejects each line. Approval cuts the physical bin, records the packed bins, releases any stock reservation held for the sales order and settles the queue balance.

The applet also carries a coiling variant of the shop-floor process-instance and work-log screens found in the Manufacturing Operations Applet (menus Auto Coil Operator and Auto Coil Supervisor), a packing container register of drums and reels, a scrap register, and read-only views of job orders, production requests and sales orders. The vocabulary of those screens — drum types, coiling direction, length markings, cable diameter — is that of a cable manufacturer, and ships to every tenant as is.

The packing order document itself neither posts a journal nor moves stock: its amount and quantity signums are both zero. Stock moves only when a coiling process instance is finalised, and that movement carries no cost (see Lifecycle and effects).

Where it fits

DirectionDocument / appletLink
Upstream (knock-off source, backend-registered)Sales Order (Internal)/applets/sales-workflow/internal-sales-order-applet/
Upstream (knock-off tabs, UI only — see Configuration)Job Sheet (Internal), Outbound Delivery Order (Internal), Sales Invoice (Internal)/applets/sales-workflow/internal-jobsheet-applet/ · /applets/sales-workflow/internal-outbound-delivery-order-applet/ · /applets/sales-workflow/internal-sales-invoice-applet/
Same data, other deskJob orders and production requests are created in the Production Planning and Monitoring Applet; here they are listed/applets/manufacturing/production-planning-and-monitoring-applet/
Same screens, other deskProcess instances and work logs (the coiling menus reuse them with instance_type = PACKING)/applets/manufacturing/manufacturing-operation-applet/
Master data consumedMachines, process types and process templates/applets/manufacturing/process-maintenance-applet/
Released on approvalStock reservation held against the sales order/applets/inventory-workflow/stock-reservation-applet/
DownstreamNone. No document type lists INTERNAL_PACKING_ORDER as its previous document (GenericDocumentTypeHandler.java, checked at backend commit c4a3545d7c)

Screens and menus

The sidebar (models/menu-items.ts) has nine work menus and six settings menus. The applet opens on Operator Queue (the empty route redirects there, app.routing.ts).

MenuRouteWhat it is
Manual Packinginternal-packing-orderThe packing order document: listing, create, edit. The name says “manual” because lines can be added by item search as well as by knock-off.
Operator Queueoperator-queueThe bl_mrp_pick_pack_queue rows created when a packing order is finalised. Operator screen: Main Details, Input Bins, Markings.
Auto Coil Operatoroperator-coilingThe operator process-instance screen (initial check, input items, output items, work logs) for process instances of type PACKING.
Auto Coil Supervisorsupervisor-coilingCreate and edit those process instances, approve work logs, set priority, finalise.
Packing Requestpacking-requestSales order lines with their production-request status; the same Production Request screen as in Production Planning and Monitoring.
Job Orderjob-orderRead-only listing of bl_mrp_job_order_hdr (Job Order No, date, item, container qty and measure, UOM, status, completion date, remarks).
Urgent Sales Orderurgent-sales-orderA sales order listing with the standard sales order columns. No urgency flag, filter or sort was found in the component or its effects (checked at commit 3d1d4e6); it is a plain listing of INTERNAL_SALES_ORDER headers.
Packing ContainerspackingRegister of drums and reels (bl_mrp_container_size): drum type, flange, barrel, inner width, clearance, volume.
Scrap & ShortscrapListing of bin locks with lock_type = SCRAP (item, bin header and line code, container qty, base qty). Rows are created from the Operator Queue tab of a packing order, not here.

The packing order edit form has these tabs (packing-order-edit.component.html): Main Details · Account · Delivery Details · Department Hdr · Lines · Contra · Payment · ARAP · Doc Link · Attachments · E-Invoice · Export · Search · Trace Document · Operator Queue. The last tab is specific to this applet: it lists the queue rows of this order and is where the supervisor approves, rejects or scraps a line. Account, Payment, ARAP and E-Invoice come with the shared document scaffold; with both signums at zero the ARAP balance of a packing order is always zero.

Adding a line opens a tab group (line-item-create.component.html): Search Item, then KO For Sales Order, KO For Jobsheet, KO For Delivery Order and KO For Sales Invoice, each shown only when enabled (see Document behaviour settings). “KO By …” and “Copy Quotation Item” tabs exist in the template but are commented out; there is no quotation knock-off.

Settings menus: Application Settings (field-settings), Default Selection, Printable Format Settings, Return Reasons Settings, Workflow Settings, Email Template, plus the shared Feature Visibility, Client Side Permission, Permission Wizard / Set, User, Team and Role Permission, and Webhook screens. Personalisation: Default Selection (personal) and Sidebar.

No screenshot of this applet is held in the wiki (static/images/internal-packing-order-applet/ is empty).

Configuration

Before you can use it

PrerequisiteWhereWhy
Applet installed; server-side permissions TNT_API_DOC_INTERNAL_PACKING_ORDER_{CREATE,READ,UPDATE,DELETE}_TGT_GUID granted (TntErpPermissions.java L3596–3635)Tenant Admin, then Settings › Server Side Permissions hereEvery document call is checked against these four.
MRP server-side permissions for the queue, packed bins, container sizes, process instances and work logs (TntMrpPermissions.java: API_TNT_DM_MRP_PICK_PACK_QUEUE_*, …_PROCESS_INSTANCE_*, …_PROCESS_INSTANCE_WORK_LOG_*, …_JOB_ORDER_HDR_READ)sameThe operator queue, coiling and container screens call the mrp/ controllers, which check these.
Company, branch, locationOrganisationHeader fields; DEFAULT_LOCATION is taken from the branch’s MAIN_LOCATION.
A Doc Flow Config row per company, source document → INTERNAL_PACKING_ORDER, enabledOrganisation › Company › Doc Flow (table bl_fi_comp_gendoc_flow_config)Without it no “KO For …” tab appears.
Finalised sales orders with lines to pack; optionally a stock reservation against themSales Order (Internal), Stock ReservationKnock-off source; the reservation is what approval releases.
Machines, process types and process templatesProcess MaintenanceRequired by the coiling menus only.
A workflow process for INTERNAL_PACKING_ORDER (optional)Settings › Workflow Settings here; processes are designed in Workflow DesignWhen set, its FINAL_STATUS_GUID gates the Final button.

Applet settings

Settings live in four places: Default Selection (applet-local component, master settings), Personal Default Selection (applet-local, per user), the shared Feature Visibility screen (projects/shared-utilities/modules/settings/feature-visibility, which writes the HIDE_* / ENABLE_* keys this applet reads), and the shared Client Side Permission screen (which grants the SHOW_* codes). Anyone who can open Settings can change the master values; Personal Default Selection is per login.

SettingWhere setWhat it controlsDefault
DEFAULT_BRANCHDefault Selection (label Default Branch), Personal Default SelectionBranch pre-filled on a new packing ordernull
DEFAULT_LOCATIONDefault Selection (Default Location), Personal Default SelectionLocation pre-filled; when a branch is picked the form patches it from the branch’s MAIN_LOCATION (default-settings.component.ts L70–72)null
DEFAULT_COMPANYDefault Selection — no control; patched from the chosen branch (L69)Company on new documentsnull
DEFAULT_PROCESS_GUIDDefault Selection (Default Coiling Process Type, a process-type dropdown)Process type pre-selected when the Auto Coil Supervisor creates or edits a process instance (personal value first, then master — supervisor-pi-create.component.ts L77)null
HIDE_GENDOC_FINAL_BUTTON, HIDE_GENDOC_VOID_BUTTON, HIDE_GENDOC_DISCARD_BUTTONFeature VisibilityHide the Final / Void / Discard buttons on the document; a user holding the matching SHOW_GENDOC_*_BUTTON client-side permission sees them anyway (packing-order-edit.component.ts L137–138, L294)not set
HIDE_ARAP_BAL, HIDE_ARAP_CONTRA, HIDE_ARAP_DOC_OPEN, HIDE_ARAP_PNS, HIDE_ARAP_SETTLEMENTFeature VisibilityHide the ARAP columns on the listing unless the user holds the matching SHOW_ARAP_* permission (packing-order-listing.component.ts L248–392)not set
HIDE_CLIENT_DOC_TYPE, HIDE_CLIENT_DOC_1…5, HIDE_SERVER_DOC_*, HIDE_DESCRIPTION, HIDE_DELIVERY_LOCATIONFeature VisibilityHide the corresponding listing columns / header fieldsnot set
ENABLE_BRANCH_FILTER, ENABLE_FILTER_BY_TODAYS_TXNFeature VisibilityListing filters by the user’s branch / today’s transactionsnot set
ENABLE_AUTO_POPUPFeature VisibilityAfter Final, open the print pop-up (packing-order-edit.component.ts L245)not set
WORKFLOW_PROCESS_GUIDwritten by Workflow SettingsThe workflow process applied to new documentsnone

Keys read at runtime that no screen in this applet writes: SALES_RETURN_WITH_PAYMENT — if it is set on this applet, Final is refused client-side unless the ARAP balance is zero (packing-order-edit.component.ts L232–238), a check copied from the Sales Return applet; on a zero-signum document the balance is always zero, so the check is inert unless the key is set by hand. DEFAULT_PROCESS_TYPE_CODE is declared in the Default Selection form but has no control in the template and is not read by any screen — model-only, not documented as a setting.

Application Settings (field-settings) does nothing. The menu opens an applet-local FieldConfigurationComponent whose template is eight unbound toggles (Unit Discount, SST/VAT/GST, WHT, Blanket Order; Segment, G/L Dimension, Profit Center, Project) and a Save button with no handler; the component class is empty (field-configuration.component.ts, .html, checked at commit 3d1d4e6). Nothing is persisted and nothing reads it.

Document behaviour settings

SettingWhereEffect
Knock-off tabsOrganisation › Company › Doc Flow (bl_fi_comp_gendoc_flow_config)On opening Add line, the applet loads the flow rows whose target is INTERNAL_PACKING_ORDER and shows KO For Sales Order if the INTERNAL_SALES_ORDER row is enabled, KO For Jobsheet for INTERNAL_JOBSHEET, KO For Delivery Order for INTERNAL_OUTBOUND_DELIVERY_ORDER, KO For Sales Invoice for INTERNAL_SALES_INVOICE (line-item-create.component.ts L120–145). The INTERNAL_SALES_QUOTATION branch is commented out.
Workflow SettingsSettings › Workflow SettingsCompany ↔ workflow process for INTERNAL_PACKING_ORDER; the process’s FINAL_STATUS_GUID must equal the document’s current status for the Final button to show (packing-order-edit.component.ts L129, L298).
Printable Format SettingsSettings › Printable Format SettingsPrintable layouts for INTERNAL_PACKING_ORDER. The applet-settings key it stores the chosen format under is named INTERNAL_PACKING_ORDER_APPLET_EXT_CODE_PRINTABLE_FORMAT_GUID_INTERNAL_PURCHASE_RETURN (printable-format-constants.ts) — a copied name, harmless as long as nothing else uses it.
Return Reasons SettingsSettings › Return Reasons SettingsMaintains reason code / name rows in bl_svc_return_reason (svc/return-reasons). The header component loads them into a drop-down option list (main-details.component.ts L541–557) but the header template renders no reason field, so the reasons are not used anywhere in this applet (checked at commit 3d1d4e6).
Email TemplateSettings › Email TemplateNotification templates for the document (shared NotificationTemplateService).

Settings in other applets that control this applet

SettingWhere it is setEffect here
Doc Flow Config (source → INTERNAL_PACKING_ORDER)Organisation appletWhich knock-off tabs exist (above).
Stock reservation against the sales orderStock Reservation appletSupervisor approval sets the reservation link and header to RELEASED.
Process types, templates, machinesProcess Maintenance appletDrop-downs on the coiling screens.

Feature visibility / permissions

  • Route guard. Seven of the nine work menus (Manual Packing, Auto Coil Supervisor, Packing Request, Job Order, Urgent Sales Order, Packing Containers, Scrap & Short) require the client-side permission SHOW_SUPERVISOR_VIEW; the guard also passes when the user holds the server permission TNT_API_DOC_INTERNAL_PACKING_ORDER_READ_TGT_GUID, TNT_TENANT_ADMIN or TNT_TENANT_OWNER (permission-gaurd.ts L56–61). Operator Queue and Auto Coil Operator are unguarded.
  • Client-side codes read by the applet: SHOW_SUPERVISOR_VIEW, SHOW_GENDOC_FINAL_BUTTON, SHOW_GENDOC_VOID_BUTTON, SHOW_GENDOC_DISCARD_BUTTON, SHOW_ARAP_BAL, SHOW_ARAP_CONTRA, SHOW_ARAP_DOC_OPEN, SHOW_ARAP_PNS, SHOW_ARAP_SETTLEMENT, SHOW_COSTING_DETAILS, SHOW_DOC_NO_BRANCH, SHOW_DOC_NO_COMPANY, SHOW_DOC_NO_TENANT, SHOW_CLIENT_DOC_TYPE, SHOW_TRANSACTION_DATE, SHOW_SALES_AGENT, SHOW_DESCRIPTION, SHOW_QTY_BASE, SHOW_QTY_UOM, SHOW_UOM_TO_BASE_RATIO, the SHOW_UNIT_PRICE_* / SHOW_UNIT_DISCOUNT* / SHOW_AMOUNT_* line-column codes, SHOW_LAST_PURCHASE_PRICE, SHOW_TAX_CONFIG_SELECTION, SHOW_WHT_CONFIG_SELECTION. The registry defines only two codes for internalPackingOrderAppletSHOW_SUPERVISOR_VIEW and SHOW_OPERATOR_VIEW (2 ACTIVE rows in bl_applet_client_side_perm_dfn, queried 2026-09-15) — and SHOW_OPERATOR_VIEW is defined but read by nothing in this applet (the Client permission map in app.component.ts L227 holds SHOW_SUPERVISOR_VIEW alone). Every other code in the list is compared against the loaded permission store (packing-order-listing.component.ts L180, L248; packing-order-edit.component.ts L137; add-line-item.component.ts L123) but has no definition row, so the Client Side Permission screen cannot grant it and the check can never be true; wherever the matching HIDE_* setting is on, that column or button is hidden for everyone, administrators included (P-0396, the P-0256 class).
  • Server-side: the four document permissions above; the mrp/ endpoints check API_TNT_DM_MRP_* permissions built per target (TntMrpPermissions.java).

Fields

Packing order — Main Details

FieldMeaningRequiredNotes
Document typeServer document typefixedAlways INTERNAL_PACKING_ORDER (applet-constants.ts).
Doc No (Branch / Company / Tenant)Running numbersgeneratedEach column can be hidden by SHOW_DOC_NO_*.
Transaction Date, Due DateHeader datesTransaction Date
Reference, Remarks, Tracking IDFree textno
Client Document type, Client Doc 1–5 NoClient-side classification and referencesnoHidden by HIDE_CLIENT_DOC_*.
Workflow Status, Workflow ResolutionRead-only workflow stateOnly when a workflow process is set.
Created / Modified By, DateAuditRead-only.

Packing order — Delivery Details

FieldMeaningRequired
Delivery Branch, Delivery LocationWhere the packed goods are delivered fromno
Delivery TypeFree classificationno
Tracking IDCarrier referenceno

Packing order — Lines (Item Details › Main)

FieldMeaningNotes
Item Code, Item NameThe item to packFrom Search Item or knock-off.
Quantity Base, Quantity by UOM, UOM to Base RatioQuantity to packQuantity Base becomes the queue row’s base_qty and qty_balance at Final.
Packing Container, Packing Container: Drum TypeWhich container size the line is packed on; drum type WOOD or STEELFrom the Packing Containers register.
Sales Order No., Jobsheet No., Delivery Order No.Source document numbersFilled by knock-off. Purchase Order / Invoice / Quotation / Requisition No. fields also render from the shared line template but no purchase knock-off exists here.
Unit Price STD / Transaction / Net (by UOM, incl./excl. tax), Unit Discount, Discount Amount, STD Amount, Tax Amount, SST/GST/VAT, WHT, Txn Amount, Amount NetPricing block of the shared line templateCarried but not posted; amount signum 0.
Remarks, eInvoice CodeFree text

Line tabs: Batch Number, Bin Number, Serial Number (scan / import), Costing Details (behind SHOW_COSTING_DETAILS), Pricing Details, Delivery Details, Delivery Instruction, Department, Doc Link, Issue Link.

Operator queue row (Operator Queue › Main Details)

FieldMeaning
Packing Order Number, Line Running Number, Job Order No.Which document line this row packs
Item Code, Item Name, UOM
Required Quantity, Packed Quantitybase_qty and what the operator records
Priority, Packing StatusStatus is the PackingStatusEnum value
Estimated Packing Dateest_packing_date
Acceptance Criteria, Acceptance DeviationTolerance carried from the FI queue row
Packing Container, Coiling Direction, Start Length Marking, End Length MarkingCoil-specific; markings are saved as bl_inv_bin_marking rows

Packing container (bl_mrp_container_size)

FieldMeaning
Drum TypeWOOD or STEEL (packing-create.component.ts L51)
Flange x, Barrel y, Inner width z, Min. clearance from outer wDimensions, each with a UOM
Volume / Volume CapacityStored; the backend also computes it for cable reels (MRPContainerSizeService.calculateCableReelVolume L38)

Lifecycle and effects

Posting proof (backend commit c4a3545d7c).

ItemValueWhere
Server document typeINTERNAL_PACKING_ORDERServerDocTypes.java L68
Amount signum0ServerDocTypes.java L68; InternalPackingOrderDataConsistencyObject.java L16 (correctAmountSignum = ZERO, checked on create and update)
Quantity signum0InternalPackingOrderDataConsistencyObject.java L17, filled onto every line
Dr/Cr equationnone — no entry in JournalPostingTypeHandler.java
GL precedencenot applicable
Stock processornone for the document
Previous-document connectorINTERNAL_SALES_ORDER onlyGenericDocumentTypeHandler.java L196–199
VOID reversesnothing on the ledgers; the UI sets posting_status = VOID (packing-order-edit.component.ts L313) and does not touch the queue

What Final does. onFinal puts posting_status = FINAL (packing-order-edit.component.ts L220–240). On success, the effect postToFiPickPackQueue$ maps every line to a bl_fi_pick_pack_queue row (gendoc-to-ppq.mapper.ts: qty_balance = base_qty = quantity_base, priority and running number null) through POST …/pick-pack-queues/ad-hoc/backoffice-ep (FinancialPickPackQueueController.java L107), then postToMRPPickPackQueue$ calls POST mrp/mrp-pick-pack-queues/insert-mrp-picking-queue/backoffice-ep, which copies each FI row into bl_mrp_pick_pack_queue and deletes the FI row (MRPPickPackQueueService.java L66–95). That is the whole meaning of Final here: the lines enter the Operator Queue. Nothing else is written.

Operator step. Saving a queue row (operator-queue.effects.ts L24–69) puts the bl_mrp_pick_pack_queue row and sets the packing order line’s packing_status to PENDING_APPROVAL. Length markings are created and updated as bl_inv_bin_marking rows (L163–246).

Supervisor approval (packing order › Operator Queue tab › Approve; queue.effects.ts):

  1. cutBins$ (L40–95): for each marking, loads the bin, and if the marked quantity is less than the bin line’s quantity, reduces the bin line and creates a new bin line for the packed quantity; if it exceeds it, throws “Packing Quantity exceeds bin’s quantity” — a client-side error, not a backend rejection.
  2. createPackedBins$ (L96–119): one bl_fi_packing_order_packed_bins row per new bin line, with packed_container_qty and packed_base_qty. Note the row’s packing_order_hdr_guid is set to the queue row’s guid, not the packing order header’s (L104).
  3. reservationRelease$ (L124–160): reads the sales order behind the queue row, finds its bin-reservation links and sets them and the stock reservation header to RELEASED.
  4. supervisorApproval$ (L165–210): sets the line’s packing_status = APPROVED and calls PUT mrp/mrp-pick-pack-queues/update-qty-balance/backoffice-ep with qty_balance − awaiting_approval; the backend checkAndUpdatePPQAndGenDoc (MRPPickPackQueueService.java L102–165) then updates the packing status on the connected generic document header and lines.

Reject sets the line’s packing_status = REJECTED (L221–240). Scrap from the same tab posts a bl_inv_bin_lock with lock_type = SCRAP, server_doc_type = INTERNAL_PACKING_ORDER and the line guid (scrap-create.component.ts L140–147, queue.effects.ts L252); that is what the Scrap & Short menu lists.

Packing statuses are PackingStatusEnum: IN_QUEUE, PLANNED, IN_PROGRESS, ON_HOLD, COMPLETED, PENDING_APPROVAL, APPROVED, REJECTED, INCOMPLETE, PENDING_STOCK. The applet’s own filter list uses INCOMPLETE, PENDING_APPROVAL, COMPLETED, REJECTED (applet-constants.ts).

No approval engine. The generic approval engine covers only PO / PR / Stock Requisition; here “approval” is the supervisor’s Approve button above and, on the coiling screens, the work-log approval_status (PENDING, APPROVED, REJECTED, REWORK) set through PUT mrp/mrp-process-instance-work-log/update-approval-status/{guid} (ProcessInstanceWorkLogService.java L39–47). Neither uses Approval Settings.

Coiling process instances (Auto Coil Supervisor / Operator). The supervisor creates a bl_mrp_process_instance_hdr with instance_type = PACKING and process_status = PLANNED, input items (bins, locked with a bl_inv_bin_lock) and output items (the Default Item / default coiling item); the operator posts work logs (shift date and type, machine, length produced, length discrepancy, line speed, OD start/mid/end, in/out die, heater temperature, time consumed). Final on the supervisor screen puts posting_status = POSTED, process_status = FINAL and then calls GET mrp/mrp-process-instances/backoffice-ep/update-inventory-from-process-instance/{guid} (supervisor-coiling.effects.ts L22–60; MrpProcessInstanceController.java L191–204). The backend writes one bl_inv_txn_line per INPUT line (quantity signum −1) and per OUTPUT line (+1) and queues InventoryTxnLineToCurrentStockBalanceProcessor for each (MrpProcessInstanceService.java L68–98, L117–160). Every such line is written with amount_txn = 0 (L149). The coil that leaves stock leaves at the running moving average; the coil that enters stock enters at zero value — the same defect as P-0255 for Stock Conversion, and the only place this applet moves stock.

Packing Request. Save writes mrp_request_status_exists and mrp_request_remarks onto the sales order line and puts the sales order (production-request.effects.ts L23–39). Nothing else changes.

Container register. Create / delete bl_mrp_container_size rows. The backend additionally exposes POST mrp/bl-mrp-container-sizes/insert-for-cable-reel/backoffice-ep (computes the reel volume) and GET …/get-drum-recommendation-for-coils (recommends a reel for an item, cable length, diameter and drum type — MRPContainerSizeService.java L38–52); the applet’s packing-container screens call only create and delete (packing-controller effects, checked at commit 3d1d4e6).

Related applets

Troubleshooting

SymptomCauseFix
A user sees only Operator Queue and Auto Coil Operator; Manual Packing and the other menus are missingThe route guard requires SHOW_SUPERVISOR_VIEW (or the document READ server permission / tenant admin). A 2026-02-16 commit fixed a case where the permission was granted but the sidebar still hid the menu.Grant SHOW_SUPERVISOR_VIEW under Settings › Client Side Permission (the row exists — it is one of the two defined for this applet) or the server READ permission.
No “KO For …” tab when adding a lineNo enabled Doc Flow row from that source document to INTERNAL_PACKING_ORDER for the document’s companyOrganisation › Company › Doc Flow.
Final button not shownA workflow process is set and the document is not at the process’s FINAL_STATUS_GUID; or HIDE_GENDOC_FINAL_BUTTON is on without SHOW_GENDOC_FINAL_BUTTONMove the workflow status, or adjust Feature Visibility / client-side permission.
“ARAP balance must be 0 for finalization”SALES_RETURN_WITH_PAYMENT is set on this applet (copied logic)Remove the key; a packing order has no ARAP.
Approve fails with “Packing Quantity exceeds bin’s quantity”A length marking’s qty_limit is larger than the bin line it points atCorrect the marking or pick another bin. Client-side check, so nothing was written.
Reserved bins listed for the wrong customerFixed 2025-11-20: the reserved-bin listing is now filtered to the packing order’s entityUpdate the applet.
Stock reservation stays ACTIVE after packingRelease runs only from the supervisor Approve path (reservationRelease$), added 2025-12-03; the operator’s Save does not releaseApprove from the Operator Queue tab of the packing order.
Finished coil shows zero cost in Stock Balance; component cost risesProcess-instance finalisation writes amount_txn = 0 (MrpProcessInstanceService.java L149)Reset the item’s moving average after finalisation; no setting changes this.
Application Settings saves nothingThe screen is unbound (see Applet settings)Use Feature Visibility and Client Side Permission for column and button visibility.

Related documentation

Last updated on