Production
Advanced License Plating for Tasklet extends the Tasklet Mobile WMS scanner to support production consumption, output, and bulk consumption using license plates.
The solution supports six transaction types:
| Transaction | Purpose |
|---|---|
| Consumption | Record material usage against a production order component line |
| Consumption Reversal | Undo previously posted consumption |
| Output | Record finished or semi-finished production against a production order |
| Output Reversal | Undo previously posted output |
| Bulk Consumption | Move raw material into a controlled bulk consumption bin |
| Bulk Consumption Reversal | Return stock from the bulk consumption bin |
Registrations from the scanner are validated immediately and then processed using a configurable execution mode — either asynchronously through a background job queue, or synchronously within the current transaction. All transaction types follow the same processing model.
How It Works
Scanning and Registration
The operator scans a barcode label at the device. The system reads the label data — which may include a license plate number, item identifier, quantity, lot number, and other information — and submits it as a registration.
Each registration is validated before it is accepted. If validation fails, the operator receives an immediate error at the device. If validation succeeds, the registration is either posted immediately (synchronous mode) or placed in a processing queue for background posting (asynchronous mode).
Processing Modes
| Mode | What happens |
|---|---|
| Synchronous | The transaction is posted immediately. If anything goes wrong, the entire transaction is rolled back and the operator sees the error. |
| Asynchronous | The transaction is placed in a queue and posted by a background job. The operator can continue scanning without waiting. Failures are visible on the Queue Monitor page. |
The mode is configurable per item, per SKU, or globally. See Execution Mode for details.
Queue Monitor
When running in asynchronous mode, the Scan Processing Queue page and Queue Monitor part provide visibility into transaction status. Each entry progresses through the following states:
| Status | Meaning |
|---|---|
| Pending | Waiting to be processed. |
| Processing | Currently being posted by the background job. |
| Success | Posted successfully. |
| Failed | Posting failed. Review the error message and retry or correct. |
| Suspended | Paused due to a dependency or controlled exception. |
| Cancelled | Withdrawn from processing. |
Failed entries are retried up to 3 times automatically. If they remain failed after retries, they require manual intervention — correct the underlying issue and use Process Entry to retry, or cancel the entry.
Reversing from Business Central
The Reverse Entry action on the queue page allows an administrator to reverse a successfully processed transaction without requiring the operator to rescan at the device. The system creates a new reversal entry and processes it through the standard pipeline.
| Original Type | Reversal Created |
|---|---|
| Output | Output Reversal |
| Consumption | Consumption Reversal |
| Bulk Consumption | Bulk Consumption Reversal |
Only entries with Status = Success can be reversed. The full quantity is reversed; for partial reversal, use the scanner device.
Consumption
Use consumption to record that raw material has been used against a production order.
How to Use
- Select or scan the production order (for example, from a job sheet). This tells the system which order the material is being consumed against.
- Scan the license plate of the pallet or stock unit being consumed.
- The system derives the item, lot, and quantity from the license plate content and posts consumption.
If the license plate contains exactly one item, the full content is consumed automatically. If it contains multiple items, you can specify which item and how much.
Without a License Plate
Where no license plate is available, you can consume by scanning the item and confirming the quantity manually. A lot number is required if the item has lot tracking enabled.
Item References in Production Consumption
Production consumption scanning can resolve an item from an Item Reference instead of requiring the item number. The supported reference types are:
| Reference type | Identifier used during scanning |
|---|---|
| Bar Code | The value in Reference No. |
| Vendor | The vendor number in Reference Type No. and the vendor item identifier in Reference No. |
Configure the Item Reference's Unit of Measure and Standard Quantity to describe what the scanned identifier represents. The Standard Quantity is used for Consumption and Bulk Consumption when the operator scans the reference without entering a quantity. It does not change the item's normal unit of measure setup or affect other warehouse processes.
The scanner keeps Quantity in the Item Reference's unit of measure. Units are calculated in the unit selected by Units UOM Source in MOB Setup. For example, when Units UOM Source is Put-away Unit of Measure, an item with PCS as its base unit and BOX as its put-away unit behaves as follows:
| Item Reference | Reference UOM | Standard Quantity | Quantity after scanning | Units in put-away UOM | Base quantity |
|---|---|---|---|---|---|
| Vendor reference | BOX | 1 | 1 BOX | 1 BOX | 10 PCS |
| Barcode reference | BAG | 1 | 1 BAG | 0.2 BOX | 2 PCS |
| Barcode reference | PCS | 5 | 5 PCS | 0.5 BOX | 5 PCS |
The conversion is applied only to calculate Units. The Quantity and its reference unit of measure remain paired, so the scan is posted with the correct reference quantity and the correct base quantity.
Partial scans do not use Standard Quantity. When the operator performs a partial scan, the quantity entered or encoded on the scanned label is used. If no quantity is supplied, the scanner does not apply the Item Reference's Standard Quantity.
How a Scanned Value is Resolved to an Item
A scanner has no way of knowing whether the value it read is an item number, a barcode, or a vendor item identifier. Where the scanner puts the value determines how it is resolved.
When the value arrives as an Item Reference No. it is matched against Item References only, in two passes:
- Bar Code references — references with Reference Type Bar Code, and references with a blank Reference Type.
- All other reference types — including Vendor references.
If nothing matches, the scan is rejected.
Because bar code references are matched first, adding a Bar Code reference is the way to control which item a given value resolves to. Where the same Reference No. exists on more than one reference — for example two vendors that use the same identifier for different items — the Bar Code reference wins, and the other references are never reached.
This lever applies only when the scanner sends the value as an Item Reference No. When the value arrives as an Item No., references are searched in a single pass with no preference for bar code references.
When the value arrives as an Item No. it is resolved in this order, and the first match wins:
- Item Reference — the value is matched against Item References of any type, in a single pass. This is tried first because only the reference carries the unit of measure and Standard Quantity that the scan must be interpreted with.
- Item No. — the value is matched against the item number.
- GTIN — the value is matched against the item's GTIN.
Because Item References are matched first, a value that is both a valid Item No. and another item's reference number resolves to the reference, and the scan is posted against that other item.
When you set up Item References, avoid values that duplicate an existing item number. If your vendors supply item identifiers that collide with your own item numbers, prefix or otherwise distinguish them before entering them as references.
Partial Consumption
To consume only part of a license plate, supply a quantity along with the scan. The remaining stock stays on the license plate and remains available for subsequent scans.
Returning Unused Material
If stock remains at the end of the process, use Consumption Reversal to return unused material to inventory.
Consumption Reversal
Use consumption reversal to undo previously posted consumption — for example, when material was scanned in error or some stock was not actually used.
How to Use
- Identify the production order and line the original consumption was posted against.
- Scan the license plate or specify the item that was consumed.
- Confirm the quantity to reverse — or leave blank to reverse the full amount.
Important
Only consumption that was originally posted through the scanner can be reversed through the scanner. Consumption posted directly in Business Central through other mechanisms is not visible to this reversal process.
The reversal quantity cannot exceed the net posted consumption quantity for the matched combination.
Bulk Consumption
Use bulk consumption when raw material enters production before it can be reliably linked to a specific production order. This is common in environments where material is brought to the production area and consumed over time across multiple orders.
Rather than posting directly to a production order, bulk consumption moves stock into a controlled bulk consumption bin. Once the material is in that bin, downstream processes — such as automatic flushing — can consume it against orders as production progresses. This is a stock movement only at the scanner; it does not immediately post consumption against a production order.
Full or Partial Movements
You can scan the entire license plate at once, or scan a portion of it. Both are valid.
This flexibility is possible because the bulk consumption bin is configured to strip license plate detail when stock arrives. Once material enters the bin, it is no longer tracked at the individual LP level — it becomes part of the bin's general stock. This means there is no technical risk in partially moving a pallet into the bin: the remaining stock stays on the original license plate until it too is scanned.
Use a partial scan when, for example, only part of a pallet is needed on the shopfloor at this time, or when a pallet is shared between production areas.
How to Use
- Open the Bulk Consumption screen in Tasklet.
- Select or confirm the work centre.
- Scan the pallet or handling-unit identifier.
- Optionally, enter a quantity if you want to move only part of the pallet. Leave the quantity blank (or zero) to move the full license plate content.
- Confirm the transaction.
The system moves the scanned stock — in full or at the specified quantity — into the bulk consumption bin associated with the selected work centre.
Prerequisites
- The work centre must have Allow Bulk Consumption enabled.
- The work centre must have a Bulk Consumption Bin Code configured.
- The bulk consumption bin must have Strip License Plate enabled. This is what makes partial movements safe — stock loses its LP association when it enters the bin.
- Each item on the license plate must have its Bulk Consumption Method set to Allow (on the item or SKU).
- At least one released production order must require the item as a component at the location.
Bulk Consumption Reversal
Use bulk consumption reversal to return stock from the bulk consumption bin — for example, when a pallet was scanned in error or material was not actually used.
How to Use
- Open the Bulk Consumption Reversal screen in Tasklet.
- Select or confirm the work centre if required.
- Scan the pallet or handling-unit identifier.
- Confirm the quantity to reverse — or leave blank to reverse the full amount.
The system moves the stock back out of the bulk consumption bin.
Bulk Consumption Allocation
Once raw material has been moved into a bulk consumption bin, it needs to be consumed against the production orders that actually used it. Bulk consumption allocation handles this automatically — apportioning the material across eligible orders in proportion to what they produced, posting consumption journal entries, and retaining a full explanation of how each quantity was derived.
Why Allocation Is Needed
Bulk consumption deliberately separates the moment material enters the production area from the moment it is consumed against an order. The operator stages material into a shared bin without choosing which order it belongs to. Allocation closes that gap at the end of the production day, attributing the staged material to the orders that ran.
How It Works
Allocation follows a calculate → adjust → post workflow:
-
Calculate — the system examines what was scanned into the bulk bin (from queue detail records), nets off any reversals, identifies the production orders that produced output that day, and computes a proportional apportionment. The result is an allocation proposal — a set of unposted records that show what would be consumed, against which orders, and why.
-
Adjust (optional) — a user can review the proposal on the Bulk Allocation Worksheet, exclude groups, or correct quantities before anything is posted.
-
Post — the proposal is posted as consumption journal entries against the production order component lines. The proposal records become the allocation log.
Each step is independent: calculation can be repeated, a proposal can be discarded and recalculated, and posting only proceeds when the user or schedule confirms it.
Allocation Grouping
Queue details are grouped by production day, location, bulk bin, item, variant, lot, and package. Within one production day, repeated movements of the same inventory combination are accumulated and allocated together.
A serial-tracked item can only ever have a quantity of one and is specific in nature, so it is not suitable for staging into a shared bin and apportioning later. Scanning one for bulk consumption is rejected at the scanner.
Reversals
Reversals are netted against forward movements before allocation begins. A reversal reduces the quantity available for allocation regardless of which production day it was scanned in. Where the forward and reversal quantities cancel out completely, the group is closed with nothing allocated.
Proportional Apportionment
For each group, the system finds the released production order component lines eligible to receive consumption — those aligned to the bulk bin, with a flushing method of Manual or Pick + Manual, and whose production order produced output on the same production day.
A component line is aligned to the bulk bin in one of two ways:
- Posted output at the work centre — the production order recorded output at a work centre whose Bulk Consumption Bin Code is this bin. This is what the order actually ran, not what it was planned to run.
- Component bin code — the component line's own Bin Code is this bin. Used wherever the first test does not hold, including orders that produced output without a work centre.
Each component line's demand is calculated as the net output quantity multiplied by the component's quantity per. The available quantity is then distributed across all eligible component lines in proportion to their demand.
Production Day Boundary
Allocation is anchored to the production day — the same configurable day boundary used throughout the production module. Material staged on a given production day is allocated only against output from that same day. This prevents one day's material from being spread across another day's orders.
A production day that is still open (its cut-off has not yet passed) is not allocated automatically. Scheduled runs process only completed days. A manual run can include the current day with an explicit confirmation.
Bin Balance Ceiling
Allocation never exceeds the physical bin balance. If the bulk bin holds less stock than the net eligible quantity — because material was moved, adjusted, or counted outside the allocation process — the available quantity is capped and the shortfall is flagged on the allocation log. The shortfall is a closed outcome, not a retry.
Finish Guard
A production order cannot be finished while unallocated bulk consumption entries exist for a qualifying component at an aligned work centre. The guard fires during Check Before Finish and identifies the specific component, work centre, and bin. Allocate and post before finishing the order.
Running Allocation
Allocation can be triggered in three ways:
| Method | How |
|---|---|
| Bulk Consumption Allocation report | Search for Bulk Consumption Allocation in the Tell Me bar. Choose Calculate Only to produce a proposal, or Calculate and Post to calculate and post in one step. Filter by work centre if needed. |
| Bulk Allocation Runs page | Lists all allocation runs with their status, group counts, and timestamps. Use Run Allocation to start a new run, or Open Worksheet to review an existing proposal. |
| Scheduled (Job Queue) | Schedule the Bulk Consumption Allocation report to run automatically — for example, after each production day ends. |
Bulk Allocation Worksheet
The Bulk Allocation Worksheet shows the allocation proposal for a selected run. Each row is an allocation group (one inventory combination for one production day). The subpage shows the individual component lines, their demand, allocated quantity, and status.
From the worksheet you can:
- Post — post all calculated and adjusted groups.
- Recalculate — discard the proposal for this run and rebuild it from current data. Other outstanding runs for the same location and bin are left alone. You are warned before any manual adjustments are lost.
- Discard — discard the proposal entirely and return queue details to their original status.
- Exclude Group — remove a specific group from this posting without cancelling the underlying queue details.
- Reverse Posting — reverse the consumption already posted for the selected groups. See Reversing a Posted Allocation.
- Allocation Log — open the full group history for the run, including groups that have been reversed.
The worksheet also lists the contributing bulk consumption entries and the consumption item ledger entries a group posted, and each allocation line can open its production order or that order's component list.
Show Reversed Groups controls whether reversed groups appear. They are hidden by default; switch it on to see a reversal and its replacement side by side after a day has been recalculated.
Reversing a Posted Allocation
Where consumption has been posted against the wrong orders — or material needs to go back to the bin and be allocated again — select the groups on the worksheet and choose Reverse Posting.
Reversal posts the offsetting consumption and puts the allocation back where it was before posting:
- an offsetting consumption entry is posted for each allocated component line, in the group's own production day, carrying the same lot or package
- the group is marked Reversed and stamped with who reversed it and when
- the contributing queue details return to Not Allocated, so the day can be recalculated from current data
- the run returns to Open, ready for a fresh calculation
A group can only be reversed while its production orders are still Released, and while the original production day is still in an open inventory period. A finished order must be reopened first.
Allocation Statuses
Queue Detail Status
Each queue detail carries a Bulk Allocation Status that tracks its progress:
| Status | Meaning |
|---|---|
| Not Allocated | Awaiting allocation. Will be picked up by the next run. |
| Proposed | Included in an unposted proposal. |
| Allocated | Successfully allocated and posted. |
| Partially Allocated | Allocated with a shortfall — the bin held less than the net eligible quantity. |
| Error | Allocation failed. Review the error and retry. |
| Deferred | No eligible output found for this production day. May be released by an extended window. |
| Suspended | Exhausted retries. Requires manual intervention to return to Not Allocated. |
| Cancelled | Withdrawn from the allocation process. |
Group Status
Each allocation group on the worksheet has its own status:
| Status | Meaning |
|---|---|
| Calculated | Proposal computed, ready to post or adjust. |
| Adjusted | Manually modified after calculation. |
| Posted | Successfully posted as consumption. |
| Reversed | The posted consumption was reversed from the worksheet. Kept as history; hidden unless Show Reversed Groups is switched on. |
| Error | Calculation or posting failed for this group. |
| Deferred | No eligible output found. |
| Excluded | Manually excluded from this run. |
| Suspended | Exhausted retries. |
Setup
Bulk consumption allocation uses the same setup as the existing bulk consumption feature:
| Setting | Where | Purpose |
|---|---|---|
| Allow Bulk Consumption | Work Center Card | Enables the work centre for bulk consumption and allocation. |
| Bulk Consumption Bin Code | Work Center Card | The dedicated bin where material is staged. Must have Strip License Plate enabled. |
| Bulk Consumption Method | Item Card / SKU Card | Set to Allow for items eligible for bulk consumption. |
| Flushing Method | Prod. Order Component | Must be Manual or Pick + Manual for the component to receive allocated consumption. |
| Consumption Journal Template / Batch | MOB Setup | The journal template and batch used for posting allocated consumption. |
No additional setup is required beyond what is already configured for bulk consumption scanning.
Output
Use output to record finished or semi-finished production against a production order and create inventory on a license plate.
This section covers single-level output — where the scanned license plate represents a single inventory level. Multi-level finished goods output (pallet-to-carton hierarchies) is covered under Hierarchical (Multi-Level) Output.
How to Use
- Confirm the work centre context. This is needed to identify the correct production order.
- Scan the output label. The label provides a handling-unit identifier, product identifier, and quantity or weight.
- The system resolves the production order, assigns or validates the license plate, and posts the output.
What Happens Automatically
The system handles several steps without manual input:
- Production order resolution — if only one released order matches the item and date, it is selected automatically. See Production Order Auto-Resolution.
- License plate assignment — the license plate may come from the label, be constructed from a GS1 serial number, or be auto-assigned from a number series.
- Lot number assignment — if the item requires lot tracking but the label has no lot, the system can auto-generate one from the item's lot number series or a date-based fallback.
- Expiration date calculation — if the item has lot tracking with expiration dates enabled and the label provides no expiration date, the system calculates one using the item's Expiration Calculation formula.
- Work centre validation — where routing exists, the system confirms the work centre is valid for the item.
License Plate Requirement
In the current release, output always requires a license plate. The license plate must either not exist yet or be empty (no stock content). A license plate that already contains stock cannot be reused for new output until it has been reversed and cleared.
Output Reversal
Use output reversal to undo a previously posted output — for example, when the wrong item was selected during weighing or an incorrect label was printed.
How to Use
- Scan the same label that was used for the original output.
- The system resolves the license plate, confirms it has stock, and posts the reversal.
The reversal quantity must not exceed the available quantity on the license plate.
Applies-to Entry Resolution
Business Central requires an output reversal journal line to reference the specific Item Ledger Entry it is reversing. The standard platform logic resolves this automatically when exactly one open output entry matches the tracking combination. However, when multiple open entries share the same lot, serial, or package number for the same production order — for example, because the same lot was used across several earlier outputs on different license plates — the platform cannot resolve the entry and requires it to be specified explicitly.
This extension handles that case automatically using a two-pass search:
-
License plate match — the posting engine first attempts to locate an open output entry where the license plate number was recorded at the time of original posting. This is the most precise match and directly ties the reversal to the entry that created the stock on that license plate.
-
Fallback — if no entry is found by license plate, the engine searches the full set of open output entries for the same production order, item, location, and tracking combination, and selects the oldest open entry (lowest Entry No.) with sufficient remaining quantity.
It is important to note that the license plate is not directly embedded in the Item Ledger Entry — it is carried as the External Document No., which is a best-effort link. After an output is posted, the underlying inventory may have been consumed, moved, or adjusted, and those subsequent transactions can affect which entries remain open. For lot-tracked items in particular, the FIFO fallback ensures the reversal is applied correctly even when the license plate link cannot be matched.
Hierarchical (Multi-Level) Output
The Output section above covers single-level output, where the scanned license plate represents a single inventory level. Some finished goods are produced as a multi-level license plate structure — for example:
- a pallet containing cartons, or
- a pallet of cartons that each contain individual pieces.
For these items, a single scan on the shopfloor creates the entire structure. The system posts the output and then automatically recomposes the resulting inventory into the staged carton and piece license plates, preserving the full parent-child hierarchy and traceability.
When It Applies
Hierarchical output is controlled by the Hierarchical Output setting on the item or SKU:
| Setting | Behaviour |
|---|---|
| (blank — default) | Output is registered as a single-level license plate, for example a single pallet or hopper bin scanned directly to a production order. |
| Hierarchical | Output is validated against a multi-level hierarchy of license plates pushed from the shopfloor system. A matching hierarchy set must exist in staging before the scan can be accepted. |
The default remains single-level output. An item only uses hierarchical output when it is configured for it and matching staged hierarchy data exists.
Staged Hierarchy Data
Hierarchical output is driven by staging data supplied by the shopfloor (factory floor) system ahead of the scan. The staging data is the authoritative source for the item, quantity, lot, variant, and the full license plate hierarchy. It defines:
- the top-level (pallet) license plate,
- the child cartons and, where relevant, the pieces within each carton,
- the quantity and carton/unit counts at each level.
You can review staged hierarchies on the Hierarchical LP Staging page.
How to Use
- Confirm the work centre context, as with single-level output.
- Scan the pallet (top-level) label. The scan provides the handling-unit identifier (license plate number or GS1 serial number) that locates the staged hierarchy.
- The system validates the staged hierarchy, posts the output at the pallet level, and recomposes the inventory into the staged cartons and pieces.
The operator only scans the top-level label — the full structure is built automatically.
What the Scan Provides
| Field | Required | Notes |
|---|---|---|
| License Plate No. or GS1 Serial No. | Always | Locates the staged parent/top-level hierarchy. At least one must be provided. |
| Item No. | Optional | Used to confirm the process; if supplied, must match staging. |
| Quantity | Optional | Validation only; if supplied, must match the staged total. |
| Carton Count | Optional | Validation only; if supplied, must match the staged carton/unit total. |
Any optional value supplied by the scan is validated against staging and must match — the scan cannot override the staged data.
Validation and Reconciliation
Before output is posted, the system checks that:
- exactly one staged hierarchy matches the scanned identifier,
- the staged structure matches the expected hierarchy,
- the staged quantity and carton/unit totals reconcile across the hierarchy levels,
- the top-level license plate is available for output (it must not already contain stock),
- a production order can be resolved (from staging or through auto-resolution).
If any check fails, the transaction is rejected. Quantity and carton reconciliation can be extended by other apps — for example, the Connect Dual Unit of Measure app applies its own unit reconciliation logic where relevant.
Processing
Hierarchical output is always processed synchronously — the output, hierarchy recomposition, and traceability all complete before the operator continues. The whole transaction is atomic: if any part fails, nothing is posted and no partial hierarchy remains.
Production Day
A configurable production day anchors transaction grouping and traceability. The production day may differ from the calendar day, supporting operations that cross midnight.
A production day runs from the configured start time until one second before the same time the following calendar day. For example, with a 03:00 AM start time, all scans between 03:00 Monday and 02:59:59 Tuesday belong to Monday's production day.
Start Time Resolution
| Priority | Source |
|---|---|
| 1 | Location — Production Day Start Time |
| 2 | MOB Setup — Production Day Start Time |
Production Time Zone
Scanner devices connect through web services that operate in UTC. To ensure production day boundaries are evaluated in the factory's local time, configure the Production Time Zone setting.
| Priority | Source |
|---|---|
| 1 | Location — Production Time Zone |
| 2 | MOB Setup — Production Time Zone |
| 3 | No conversion (session time zone used) |
The setting uses Windows time zone identifiers (for example, New Zealand Standard Time). Daylight saving time is handled automatically.
If your factory does not operate in UTC, always configure the Production Time Zone. Without it, production day boundaries may be evaluated incorrectly — for example, a scan at 08:00 NZST could be treated as 20:00 UTC the previous day.
Production Run Span
The Production Run Span setting controls how the scanner selects candidate production orders during auto-resolution.
Values
| Value | When to use | What it does |
|---|---|---|
| Single Day | One production order per item per day is typical. | Looks for released orders with a Starting Date equal to today's production day. |
| Multi Day | A production run may carry over midnight. | Looks for released orders that started on or before today and are still active on the shopfloor. |
| Multiple Orders per Day | Several orders for the same item run on the same day. | Looks for released orders on today's production day and uses the Active on Shopfloor flag to narrow to those currently in progress. |
| (blank) | No restriction. | Behaves the same as Multi Day when no default is set. |
Where to Configure
| Priority | Source |
|---|---|
| 1 | Stockkeeping Unit — Production Run Span |
| 2 | Item — Production Run Span |
| 3 | MOB Setup — Default Production Run Span |
Production Order Auto-Resolution
When the scanner sends an output registration without a production order number, the system attempts to find the correct order automatically.
Stage 1 — Production Run Span Filter
The item's effective Production Run Span determines the initial candidate set:
| Effective Span | Orders Considered |
|---|---|
| Single Day | Released orders for the item with Starting Date equal to today's production date. |
| Multi Day | Released orders for the item with Starting Date on or before today, still active on the shopfloor. |
| Multiple Orders per Day | Released orders for the item on today's production date, narrowed by the Active on Shopfloor flag. |
| (blank) | Released orders for the item with Starting Date on or before today. |
A Location Code filter is also applied at this stage.
If Stage 1 returns exactly one candidate, resolution is complete.
Stage 2 — Production Order Filter
When Stage 1 returns more than one candidate, the Production Order Filter configured on MOB Setup is applied as an additional filter. After applying it, exactly one order must remain. If zero or more than one match, the scanner must supply the production order explicitly.
Execution Mode
Controls whether transactions are posted immediately or queued for background processing.
| Mode | Behaviour |
|---|---|
| Asynchronous | Transaction is queued and posted by a background job. |
| Synchronous | Transaction is posted immediately. Any error causes full rollback. |
Where to Configure
| Priority | Source |
|---|---|
| 1 | Direct Post flag on the queue record |
| 2 | Stockkeeping Unit — Production Execution Mode |
| 3 | Item — Production Execution Mode |
| 4 | MOB Setup — Production Execution Mode |
| 5 | Fallback: Asynchronous |
Location Resolution
A Location Code is required before any production posting can proceed. When the scanner does not include one, it is resolved automatically:
| Priority | Source | Applies To |
|---|---|---|
| 1 | Prod. Order Line Location Code | All types (when order and line are present). |
| 2 | Work Center Location Code | Output, Output Reversal, Bulk Consumption, Bulk Consumption Reversal. |
| 3 | Warehouse Employee default Location Code | Output, Output Reversal. |
If no source yields a location, the transaction fails with an error identifying the resolution attempts and remediation guidance.
Setup Reference
This section lists all production-related setup fields, organised by scope.
MOB Setup (Global)
Configured in the Production section of the MOB Setup page.
| Field | Type | Description |
|---|---|---|
| Production Day Start Time | Time | The time at which a new production day begins. Can be overridden per location. |
| Production Time Zone | Text | The time zone in which the Production Day Start Time is interpreted. Uses Windows time zone identifiers. Can be overridden per location. Leave blank to use the server session time zone. |
| Default Production Run Span | Option (Single Day, Multi Day, Multiple Orders per Day) | Controls which released production order lines are considered during output auto-resolution. Used as the fallback when neither the item nor SKU specifies a value. |
| Production Execution Mode | Option (Asynchronous, Synchronous) | Global default execution mode. Defaults to Asynchronous when blank. |
| Production Order Filter | Filter | Additional table filter applied to Prod. Order Lines during auto-resolution Stage 2. Edited through a standard filter page. |
| Output Posting License Plating | Option | Controls whether the system may automatically assign a licence plate number during output posting when one is not already provided. This setting is not part of the core production output functionality described in this document. It is intended only for scenarios where a licence plate is not pre-assigned and must be generated at posting time. |
| Auto-Generate Output Lot No. | Boolean | Auto-generates a Lot No. for output when the scanned label has no lot. Priority: scanner lot → subscriber event → item lot number series → DDMMYY + Location Code fallback. |
| Auto-Assign Output Licence Plate No. | Boolean | Auto-assigns a License Plate No. from the configured LP Number Series when no license plate is provided and no subscriber assigns one. |
| Consumption Journal Template | Code | Item Journal Template for posting consumption. Must be type Consumption. |
| Consumption Journal Batch | Code | Item Journal Batch for posting consumption. |
| Output Journal Template | Code | Item Journal Template for posting output. Must be type Output. |
| Output Journal Batch | Code | Item Journal Batch for posting output. |
Location
| Field | Type | Description |
|---|---|---|
| Production Day Start Time | Time | Overrides the MOB Setup start time for this location. |
| Production Time Zone | Text | Overrides the MOB Setup time zone for this location. |
Item
Configured on the Item Card under the Advanced License Plating group.
| Field | Type | Description | Resolution |
|---|---|---|---|
| Production Run Span | Option | Controls order auto-resolution behaviour for this item. | SKU → Item → MOB Setup |
| Production Execution Mode | Option | Execution mode for this item. | SKU → Item → MOB Setup → Asynchronous |
| Output License Plates | Option | Controls whether a licence plate may be automatically assigned for output for this item when one is not already provided. This setting is not part of the core production output functionality described in this document. It is intended only for scenarios where a licence plate is not pre-assigned. | Item only. |
| Bulk Consumption Method | Option (Allow, Disallow) | Whether this item is eligible for bulk consumption. | SKU → Item |
| Hierarchical Output | Option (blank, Hierarchical) | Whether output for this item is registered as a single-level license plate (blank) or validated against a multi-level staged hierarchy (Hierarchical). See Hierarchical (Multi-Level) Output. | SKU → Item |
Stockkeeping Unit
Configured on the Stockkeeping Unit Card. Provides location- and variant-specific overrides.
| Field | Type | Description | Resolution |
|---|---|---|---|
| Production Run Span | Option | Overrides the item-level setting. | SKU → Item → MOB Setup |
| Production Execution Mode | Option | Overrides the item and global setting. | SKU → Item → MOB Setup → Asynchronous |
| Bulk Consumption Method | Option (Allow, Disallow) | Overrides the item-level setting. | SKU → Item |
| Hierarchical Output | Option (blank, Hierarchical) | Overrides the item-level setting. | SKU → Item |
Work Centre
Configured on the Work Center Card.
| Field | Type | Description |
|---|---|---|
| Allow Bulk Consumption | Boolean | Whether this work centre supports bulk consumption. |
| Bulk Consumption Bin Code | Code | The bin where material is moved during bulk consumption. Must be a dedicated bin. |
License Plate Prefix Setup
Configured through the License Plate Prefix Setup page (accessible from MOB Setup). Controls how internal license plate numbers are constructed from scanned GS1 serial numbers.
| Field | Type | Description |
|---|---|---|
| Entry No. | Integer | Primary key, auto-increment. |
| Depth | Integer | License plate hierarchy depth. 1 = single-level, 2 = two-level, 3 = three-level. |
| Location Code | Code | Blank = default for all locations. A populated value = location-specific override. |
| Prefix | Code | Prepended to the serial number when constructing the license plate number. |
| Description | Text | Optional description. |
The combination of Depth and Location Code must be unique.
Setting Resolution Summary
| Setting | Resolution Chain (highest priority first) |
|---|---|
| Production Day Start Time | Location → MOB Setup |
| Production Time Zone | Location → MOB Setup → Session time zone |
| Production Run Span | SKU → Item → MOB Setup |
| Production Execution Mode | Direct Post flag → SKU → Item → MOB Setup → Asynchronous |
| Bulk Consumption Method | SKU → Item (no global default) |
| Hierarchical Output | SKU → Item (no global default) |
| Location Code | Prod. Order Line → Work Center → Warehouse Employee default |
Important Note on Output Licence Plate Settings
Output Posting License Plating and Output License Plates are not part of the main production functionality described in this document.
These settings exist only to support automatic licence plate assignment for output entries where a licence plate is not already assigned or supplied.
In practical terms:
- if the output label or transaction already provides a licence plate, these settings do not control that behaviour
- if no licence plate is provided, these settings determine whether the system should automatically assign one during output processing
Output License Platescontrols this at item levelOutput Posting License Platingenables the related automatic assignment behaviour at posting time
These settings are therefore intended for licence-plate generation scenarios, not for the broader definition of the production output process itself.
Technical Reference
This section covers technical detail relevant to developers, integration partners, and administrators troubleshooting scan data issues.
Scan Data and GS1 Identifier Handling
The scanner may provide some or all of the following data elements from GS1-encoded labels:
| Data Element | GS1 AI | Queue Field | Notes |
|---|---|---|---|
| SSCC / license plate | (00) | License Plate No. | Maps directly to the internal license plate number. |
| GTIN | (01) or (02) | Item Reference No. | Resolved to an internal Item No. via the Item Reference table. |
| Lot number | (10) | Lot No. | Not consistently available on all label formats. |
| Best before date | (15) | Expiration Date | Captured where provided. YYMMDD format. |
| GS1 serial number | (21) | GS1 Serial No. | Used to resolve or construct the internal License Plate No. |
| Variable count | (30) | Units | Number of cartons or units on the pallet. |
| Net weight | (3103) | Quantity | Weight with 3 implied decimal places (divide by 1000). |
Only values encoded as GS1 AIs in the barcode data string are parsed by the scanner. Human-readable text printed on the label that is not GS1-encoded must be entered manually or the label must be updated to include the appropriate AI.
Product Identifier Resolution
The scan may provide a product identifier as an Item No., GTIN, or other item reference. The system resolves the internal Item No. from the scanned value using:
- Item GTIN lookup
- Item Reference lookup (type = Barcode or blank)
If the product identifier cannot be resolved, the transaction is rejected.
GS1 Serial Number and License Plate Resolution
The scan may provide either a License Plate No. or a GS1 Serial No. When only the GS1 Serial No. is provided:
- The system searches the license plate table using the GS1 Serial No. index.
- If found, the related internal License Plate No. is used.
- If not found, the system constructs a License Plate No. using the configured license plate prefix setup.
- If no valid License Plate No. can be determined, the transaction is rejected.
GS1 Serial No. is stored as a separate field on the license plate record and indexed for efficient lookup.
License Plate Construction from GS1 Serial Number
When no existing license plate matches the scanned serial number, the system constructs one:
Rule Selection:
- Determine the applicable depth and location code from the transaction context.
- Look for a setup record matching the exact depth and exact location code.
- If not found, fall back to the same depth with a blank location code.
- If no rule is found, the transaction is rejected.
Construction Logic:
- Concatenate the configured Prefix with the GS1 Serial No.
- If the result is shorter than 17 characters, left-pad with zeroes until it reaches 17 characters.
- Calculate and append the GS1 check digit.
- The resulting 18-character value is used as the internal License Plate No.
Zero-padding is applied after prefix concatenation, not to the raw serial number alone.
Consumption Validation Rules
Production order and line
- Production Order No. must be present.
- Prod. Order Line No. must be present, but is defaulted automatically when the production order has exactly one Released line. If the order has multiple lines, the line number must be supplied explicitly.
Direct consumption (no license plate)
- Quantity must be greater than zero.
- The item must exist in Business Central.
- If the item requires lot tracking, a Lot No. must be provided.
- If a Lot No. is provided, it must not be blocked and must not be expired.
License plate consumption
- Every item in the license plate content must appear as a component on the production order.
- For every item/lot combination, the same lot validations apply.
- Where Item No. is supplied: the item must exist on the LP; if a partial quantity with lot tracking and multiple lots, a Lot No. must be specified; quantity must not exceed available.
- Where no Item No. and a quantity is given: the LP must contain exactly one item+variant; lot restrictions apply; quantity must not exceed available.
- Where no Item No. and no quantity: the entire LP content is consumed.
Consumption Reversal Validation
- Production Order No. is required.
- Prod. Order Line No. is required, but is defaulted automatically when the production order has exactly one Released line.
- At least one identifier (LP or item) must be provided.
- A matching record must exist in the Scan Processing Queue Detail (only records posted through this process are eligible).
- The reversal quantity must not exceed the net posted consumption quantity.
Bulk Consumption Validation
- License Plate No. or GS1 Serial No. is always required (no direct item entry).
- The LP must have stock content.
- The LP must not be fully committed in the pending queue.
- Partial or full quantity movement is allowed.
- The requested quantity must not exceed the available quantity on the source licence plate.
- The work centre must have Allow Bulk Consumption enabled and a Bulk Consumption Bin Code configured.
- The bulk consumption bin must support Strip License Plate.
- Each item must have Bulk Consumption Method = Allow.
- At least one Released production order component line must exist for the item at the location.
Output Validation Rules
- Quantity must be greater than zero.
- Item No. and Work Center No. are required (can be resolved from the production order).
- The license plate must not already be queued for output.
- If the license plate exists, it must be empty.
- Where routing exists, the work centre must be valid for the item (last routing operation check).
- The production order must be Released and match the item.
Output Reversal Validation
- Quantity must be greater than zero.
- A License Plate No. must be resolved.
- The available quantity on the license plate must be sufficient.
Detail Record Sign Convention
Quantity on Scan Processing Queue Detail is always stored as a positive value. The Registration Type identifies whether it represents a consumption or reversal; the sign is applied at posting time.
| Registration Type | Stored Value | Sign at Posting |
|---|---|---|
| Consumption | Positive | Negative (reduces inventory) |
| Consumption Reversal | Positive | Positive (increases inventory) |
Queue Lifecycle Details
Cancellation Reasons:
- Replaced by New Message — a newer message for the same transaction superseded this entry.
- Cancelled by User — an administrator cancelled the entry manually.
Job Queue Processing:
- Picks up Pending entries in occurrence order.
- Skips errored entries so subsequent entries are not blocked.
- Retries 3 times; moves to Failed after exhaustion.
Dependency Handling: Where a transaction depends on an earlier unposted transaction (for example, consumption of a license plate whose output has not yet been posted), the system attempts to process that dependency during capture.
Production Order Finish Protection: A production order cannot be finished while related queue entries remain unprocessed (Pending, Processing, Failed, or Suspended).
Extension and Subscriber Rules
This app provides the core framework. Additional business rules may be applied through subscribing extensions (for example, the Aptean Tasklet Integration app). Subscriber use cases include:
- Inspection status validation during consumption
- Lot number assignment during output
- License plate assignment during output
- Expiration date override during output
- Additional validation or enrichment
Scanner Field Requirements
Consumption
| Field | Required | Notes |
|---|---|---|
| Production Order No. | Always | Must be a Released production order. |
| Prod. Order Line No. | Usually | Defaulted when the order has exactly one Released line; required when multiple lines exist. |
| License Plate No. or GS1 Serial No. | Conditional | Either this or Item No. |
| Item No. / GTIN / Item Reference | Optional | Required for direct consumption without LP. |
| Lot No. | Conditional | Required when lot-tracked and ambiguous. |
| Quantity | Conditional | Required for direct consumption. Omit for full LP. |
Consumption Reversal
| Field | Required | Notes |
|---|---|---|
| Production Order No. | Always | Must match original. |
| Prod. Order Line No. | Usually | Defaulted when the order has exactly one Released line; required when multiple lines exist. |
| License Plate No. or GS1 Serial No. | Conditional | Either this or Item No. |
| Item No. | Optional | Narrows the reversal. |
| Lot No. | Optional | Narrows the reversal. |
| Quantity | Optional | Omit to reverse all. |
Bulk Consumption
| Field | Required | Notes |
|---|---|---|
| Work Center No. | Always | Must be enabled for bulk consumption. |
| License Plate No. or GS1 Serial No. | Always | No direct item entry. |
| Quantity | Optional | Leave blank for full movement; provide a quantity for a partial movement. |
Bulk Consumption Reversal
| Field | Required | Notes |
|---|---|---|
| Work Center No. | Usually | Required for bin context. |
| License Plate No. or GS1 Serial No. | Always | Identifies the stock. |
| Quantity | Optional | Omit to reverse all. |
Output
| Field | Required | Notes |
|---|---|---|
| License Plate No. or GS1 Serial No. | Conditional | Output requires an LP. |
| Item No. / GTIN / Item Reference | Usually | Can be resolved from order. |
| Quantity | Always | Must be > 0. |
| Work Center No. | Usually | Required for order resolution. |
| Production Order No. | Optional | Auto-resolved where possible. |
| Lot No. | Optional | Auto-assigned when not supplied. |
Output Reversal
| Field | Required | Notes |
|---|---|---|
| License Plate No. or GS1 Serial No. | Always | Must identify original output LP. |
| Quantity | Always | Must be > 0, must not exceed LP stock. |