Skip to main content

Assembly

The Dual Unit of Measure app allows you to assemble and consume items in weight/volume and units. The app also supports defining Assembly BOMs using Dual Unit of Measure items as components.

Important

This documentation assumes you have a working knowledge of Assembly in Business Central. If you are new to Assembly, we recommend that you familiarise yourself with the standard Business Central documentation, which you can find here.

Assembly BOM

We have added the Units Per field on the Assembly BOM lines, which you can specify for Dual Unit of Measure component items. This field is used to specify the number of units of the component required to assemble each unit of the parent item.

info

When the finished item is a Dual Unit of Measure item, the Assembly BOM page also shows the Units per (Assembly UOM) and Quantity per (Assembly UOM) columns. These fields always reflect the values based on the finished item's unit conversion — regardless of the BOM's unit of measure. You can update these values, and the app will automatically update Units Per and Quantity Per.

The following fields are added to the Assembly BOM lines:

FieldPurpose
Unit of Measure - UnitsSpecifies the Units unit of measure of the component item. This is read-only and is derived from the item card.
Units PerSpecifies how many units of the component are required to assemble one unit of the parent item. If you enter a value here, the app will update the Quantity Per using the setup against the item. If you update the Quantity Per, the app updates this field, too.
Units per (Assembly UOM)Specifies the units per based on the finished item's unit conversion. See additional info above.
Quantity per (Assembly UOM)Specifies the quantity per based on the finished item's unit conversion. See additional info above.

Assembly Orders

We have extended the Assembly Order page to support Dual Unit of Measure items.

Assembly Order Header

The following fields are added to the header:

FieldPurpose
UnitsSpecifies how many units of the assembly item you expect to assemble. If you enter a value here, the app will update the Quantity using the setup against the item. If you update the Quantity, the app updates this field, too.
Units to AssembleSpecifies how many units of the assembly item you want to post for this run. To post the full order, leave this unchanged. If you enter a value here, the app will update the Quantity to Assemble using the setup against the item.
Remaining UnitsSpecifies how many units of the assembly item remain to be posted as assembled output.
Assembled UnitsSpecifies how many units of the assembly item have already been posted as assembled output.
Reserved UnitsSpecifies how many units of the assembly item are reserved against this assembly order.

Assembly Order Lines

The following fields are added to the component lines:

FieldPurpose
Unit of Measure - UnitsSpecifies the Units unit of measure of the component item. This is read-only and is derived from the item card.
Units PerSpecifies how many units of the component are required per unit of the assembly item. If you enter a value here, the app will update the Quantity Per using the setup against the item. If you update the Quantity Per, the app updates this field, too.
UnitsSpecifies the total units of this component required for the full assembly order. This is calculated from Units Per and the header Quantity and is read-only.
Units to ConsumeSpecifies how many units of the component you want to post as consumed in this run. If you enter a value here, the app will update the Quantity to Consume using the setup against the item.
Consumed UnitsSpecifies how many units of this component have already been posted as consumed during assembly.
Remaining UnitsSpecifies how many units of this component remain to be consumed.
Reserved UnitsSpecifies how many units of this component are reserved for this assembly order line.
info

When the finished item's unit of measure differs from its Units unit of measure (e.g. the assembly order is in KG but the finished item's units UOM is PCS), the Units Per and Quantity Per on the component lines are automatically converted from the BOM values when the order is created. The BOM's Units per (Assembly UOM) and Quantity per (Assembly UOM) always reflect the original BOM-defined values regardless of the assembly order's unit of measure.

Assembly Quotes

The Assembly Quote page has also been extended. You can enter Units on the quote header for Dual Unit of Measure items. The Units field behaves identically to the Assembly Order.

Assemble to Order

The app supports Assemble to Order (ATO) scenarios linked to Sales Orders and Sales Quotes. When a sales line triggers the creation of an assembly order, the units from the sales line are carried to the assembly order header. During partial posting, the app ensures the units on the assembly order remain in sync with the quantity being shipped from the sales line or warehouse shipment.

Posted Assembly Orders

The Posted Assembly Order page has been extended to show the Units that were assembled. The posted subform lines also show the Units Per and Units that were consumed per component.

Scenarios

Scenario 1: Assembly BOM defined in Units

Item Card

Below is the item card for our finished assembly item. You will notice:

  • The item is a Dual Unit of Measure item.
  • The Base Unit of Measure is KG.
  • The Units Unit of Measure is PCS.
  • The Ratio - Weight/Volume to Unit is set to 2.5, which means the average weight per piece is 2.5 kg.

Assembly BOM

Below is the Assembly BOM for the finished item. You will notice:

  • The Units Per is set on each Dual Unit of Measure component, specifying how many units of each component go into one unit of the assembly item.
  • The Units per (Assembly UOM) and Quantity per (Assembly UOM) columns show the same values expressed in the assembly item's own unit conversion.

Assembly Order

Below is the Assembly Order for the finished item. You will notice:

  • The Units on the header is set to 10, so we plan to assemble 10 pieces.
  • The Quantity is set to 25, reflecting the average weight of 2.5 kg per piece.
  • The Units to Assemble mirrors Units for a full order run.

Component Lines

Below are the component lines for the Assembly Order. You will notice:

  • Each Dual Unit of Measure component shows Units Per, Units, Units to Consume, and Remaining Units.
  • The Units column reflects the total units required for the full order (Units Per × header Quantity).
  • The Units to Consume column reflects the units to consume in this run (Units Per × Quantity to Assemble).

Scenario 2: Partial Assembly Posting

When you post an Assembly Order partially (i.e. Units to Assemble is less than Units), the app:

  • Reduces Assembled Units and Remaining Units on the header accordingly.
  • Reduces Consumed Units and Remaining Units on the component lines.
  • Carries the correct units to the Item Ledger Entries and Posted Assembly Order.

Unsupported Scenarios

The following scenarios are not supported by the app. If you attempt to use them, the units recorded on the resulting Item Ledger Entries may be incorrect.

Multiple Item Tracking Lines on a Lot-Tracked Assembly Output

When the finished good on an Assembly Order is lot-tracked, the app expects a single item tracking line on the assembly header output before each post. Creating two or more item tracking lines on the header output — whether for the same lot number or different lot numbers — in a single posting run is not supported. In this scenario, the app is not able to correctly split the header Units across the multiple tracking lines, and the resulting Item Ledger Entries will not reflect the expected units.

Workaround

Instead of assigning multiple item tracking lines in one go, split your posting into multiple runs:

  1. Set Units to Assemble on the header to the portion you want to post against the first lot.
  2. Assign a single item tracking line to the header output for that lot and quantity.
  3. Post the assembly order.
  4. Repeat for the next lot: set Units to Assemble again, assign a single tracking line, post.
  5. Continue until the full order is posted.

Each post run produces its own Posted Assembly Order and its own Item Ledger Entry with the correct lot number and units.

info

This limitation only applies to the finished good's item tracking on the assembly header. Item tracking on component lines (Assembly Lines) supports multiple tracking lines per line, and is covered by the automated tests listed below.

Automated Test Coverage

For the full list of automated test scenarios, see the README.

See Also