Syntech Manufacturing

Syntech Manufacturing · component guide

Order materials check

On the sales order card the component shows whether the materials for the ordered quantity are available: the BOM is exploded on all levels and netted against usable stock, reservations and incoming supply. It lists the shortages, the promised date, creates purchase requests for the shortages and a production plan for the order.

Where it lives

  • Sales order card (Orders_FormPage) → tab “Materials” (second tab, after the products).
  • Order card header → button “Check materials”: runs the check, shows the result in a dialog and refreshes the tab.
  • The same check is the service endpoint rest/SynOrderMaterialCheckWebService/CheckOrderMaterials (parameter orderId).
  • Opening the order and the tab's Refresh button only calculate the check (readOnly: true) and write nothing. Only the header button "Check materials" stores the check result.

What it needs

Packages
ordermaterialssyntech (this element) and SynManufacturing (backend schema SynManufacturingServices_OrderMaterialCheck).
Licence
Operation SynManufacturing.Use; without it the tab shows the licence card and loads nothing.
Master data
A current BOM for every product that is made; preferred suppliers in Supplier product (lead time, minimum order quantity, order multiple); stock in WMS bins.
Rights
Reading the check: everybody who can open the order. “Create purchase requests”: operation right CanManageProcurement. “Create production plan”: CanRunMRP. Without the right the button is disabled and its tooltip says why.
Settings
SynOrderCheckIncludeIncoming (count incoming purchases and production, on), SynOrderCheckIncludeAwaitingPutaway (count accepted goods not yet in a bin, on), SynOrderCheckRoundToSupplierLot (round purchase lines to the supplier lot, on), SynPromiseBomDepth (levels per explosion round of the promise engine). Manufacturing configuration → System settings → “Order material check”.

The screen (emulated)

Emulated from the component’s own captions with demo data. Row colours: red = short, amber = covered only by incoming supply, green = covered by stock.

What the columns mean

  • RequiredBOM quantity × ordered quantity, with the scrap percent. For a component of a sub-assembly: only for the part of the sub-assembly that is short (a sub-assembly in stock is not made again).
  • On handUsable bin stock: blocked bins, quarantine and scrap zones, batches on hold / in quarantine / rejected and held serial numbers are excluded. Underneath: accepted goods still waiting for putaway.
  • Reserved for othersBin reservations of other documents. Reservations of this order (the order itself, its queue items and its production orders) stay available to it.
  • IncomingApproved / ordered / partially received purchase requests not received yet, plus open production orders of the (sub-assembly) product. Supply overdue by more than 30 days is not trusted.
  • ShortageRequired − (on hand − reserved for others + awaiting putaway + incoming).
  • On requestQuantity already on draft / pending purchase requests linked to this order.
  • Lead timePreferred supplier lead time, else the product lead time, else the default; for a sub-assembly the production lead time.
  • Covered byEarliest date the requirement is covered: today (stock), the date of the incoming document that completes it, or today + lead time (after the components, for a sub-assembly).

Typical actions

Check a new order

  1. Enter the order and its products and save it.
  2. Press “Check materials” in the header — a dialog says “Materials for this order: complete” or “N item(s) short” with the promised date.
  3. Open the “Materials” tab to see the table level by level; tick “Only shortages” to hide the covered rows.

Order what is missing

  1. On the “Materials” tab press “Create purchase requests for shortages”.
  2. One draft request per preferred supplier is created (materials without a preferred supplier go to one request without a supplier). Lines are the shortage, raised to the minimum order quantity and rounded up to the order multiple.
  3. The request header and every line carry the sales order (field “Sales order”), so they are listed under the table and can be found from the request.
  4. Press the button again after changing the order: the existing draft of that supplier is topped up — no second request is created.

Continue into production

  1. Press “Create production plan”: a Draft plan “Order ORD-… – customer” with one item per product that has a BOM.
  2. Open the plan from the link under the table and run Calculate MRP, then generate production orders as usual.
  3. Products already in a plan are skipped and named in the message.

Refresh after a receipt

  1. After goods were received, press “Refresh” (or “Check materials”).
  2. Rows move from red to amber / green; the summary and the short count change.
  3. With the automatic MRP recalculation switched on, the planner also gets a notification naming this order and its new status.

What to check

  • The summary line and the “Items short” tile agree with the red rows of the table.
  • The promised date tile says committed once the order line was promised in the order queue, otherwise calculated.
  • After “Create purchase requests” the “On request” column is filled and the requests appear under the table.

Typical mistakes

  • A product shows “No BOM”. It is skipped from the shortage calculation. Add a BOM if the product is made in-house; bought-in goods sold as they are need no BOM.
  • “Create purchase requests” is disabled. Either every bought shortage is already on a request of this order (tooltip says so), only sub-assemblies are short (make them: create the production plan), or you lack CanManageProcurement.
  • The receipt was booked but the row is still red. The goods were rejected at incoming inspection or are on hold; held stock never counts. Accepted goods waiting for putaway do count while the setting is on.
  • Draft requests do not reduce the shortage. By design: only approved / ordered requests are supply. Drafts appear in “On request”.

Automatic MRP after a receipt (optional)

  • Setting SynMrpAutoRecalcOnReceipt (off by default). When on, every posted goods receipt is queued; when no receipt arrived for SynMrpAutoRecalcDelaySeconds (30 s) the open plans are recalculated once each — those that use a received product (SynMrpAutoRecalcScope = Affected) or all (All).
  • The role in SynMrpAutoRecalcNotifyRole (default: Production planner) gets a notification: the receipt, the recalculated plans, the shortages that are now covered by stock and what is still short, and every checked sales order that uses a received product with its new status (“materials complete” / “N short”).
  • Each run is recorded on the receipt rows (object “MRP recalculation after receipt”) and in SynMrpAutoRecalcLastRun; the manufacturing log gets an entry when it has room.

All orders mode

Switch “All orders” in the header of the tab (or place the element with mode = "allOrders" on a planner or sales home page) to see the material requirement of every open order at once:

  • Demand: open production orders (their material rows: required − consumed, on the row’s date) and committed sales orders (status Confirmation / In progress, plus the live-queue and gate statuses; switch Unconfirmed orders too for every open order) not yet put into production, exploded through the whole BOM on the requested date minus the production lead time. A sub-assembly is first covered by its own stock and open production orders, only the rest is exploded.
  • Supply: usable bin stock, open purchase requests (Approved / Ordered / Partially received; Unapproved purchase requests too adds Draft and Pending) on their required date, and production outputs on their planned end.
  • For each material (optionally per warehouse): on hand, need today, end of today, need in the horizon, incoming, the lowest projected figure and the date it goes short. By day opens the projected stock day by day and the documents behind it.

Service rest/SynOrderMaterialCheckWebService/GetMaterialProjection (read-only). Rights: one of CanRunMRP, CanPromiseOrders, CanManageProcurement, CanManageProduction, CanScheduleProduction. Default horizon: SynMaterialProjectionHorizonDays (14). Demand without a warehouse is attributed to SynDefaultWarehouseId.

Pre-promise shortage gate

Setting SynOrderShortageGateMode: Off (default) · Warn · Block. The order’s demand is added to the projection of everything already committed; when a material it needs goes below zero within the horizon:

  • Warn: promising the order in the order queue asks the manager to confirm (“Promise anyway?”); the tab shows an amber banner with the materials and the shortfall dates.
  • Block: the promise is refused, and saving the order into the gate status (SynOrderShortageGateStatus, empty = Confirmation) is refused with the list of materials; the banner is red.

Check it for one order with rest/SynOrderMaterialCheckWebService/CheckOrderGate. A failing check never blocks sales: it is logged and the order goes ahead.

Change a launched order line

With SynOrderChangeEnabled on, each order line has Change: a new quantity and / or a new product (for paint: the colour). Preview lists what happens to the production orders of the line; Confirm change applies it:

  • More: a Draft / Planned order grows; when every order is released, an additional production order is generated for the difference.
  • Less (a reason is required): taken from unreleased orders first, then from the remaining quantity of released ones, never below what is completed; an order that drops to zero and has not started is cancelled. Operations and material requirements are scaled.
  • Product / colour: unstarted production orders are cancelled and recreated for the new product; a started order blocks the change.

Every change writes an audit row SynOrderChangeLog. Status changes go only through the production-order services. Right: CanManageProduction. Service rest/SynOrderChangeWebService/{PreviewOrderChange, ApplyOrderChange}.

Recipe per batch

A BOM may be written for a batch: header Output quantity (SynOutputQuantity, e.g. 1000 kg) and Output unit. The check, the projection, MRP, order materials, reservation, Buildable and the order promise all use line quantity × ordered quantity ÷ output quantity. Output empty or 1 = per one unit, as before. When the output unit differs from the product’s unit, the product’s unit conversion (Product units) is applied.

Limits and known behaviour

  • Stock is not allocated between orders: another order checked at the same time sees the same free stock. Commit promises in the order queue to reserve it.
  • Finished-good stock is not netted: the check answers “can we make the ordered quantity”.
  • The promised date comes from the order promise engine: the order line’s queue item when the order is in Confirmation / In progress with a date, otherwise a what-if calculation.
  • The request number is generated by the procurement service; two requests created in the same second can get the same number.
  • When the order is already split into production orders, the tab shows one light notice with their count and points to the “Split into production orders” tab.
  • When a request fails, the tab shows a short message — “You do not have access to the material check”, “The server could not be reached…” or “The server could not complete the request (error N)…” — and writes the details to the browser console.

See also

Syntech Manufacturing · ordermaterialssyntech · 2026-10-12