Assembly order posting is based on the same principles as when posting the similar activities of sales orders and production consumption/output. However, the principles are combined in that assembly orders have their own posting UI, like that for sales orders, while the actual entry posting happens in the background as direct item and resource journal postings, like that for production consumption, output, and capacity.

Similarly to production order posting, the consumed components and the used resources are converted and output as the assembly item when the assembly order is posted. For more information, see Design Details: Production Order Posting. However, the cost flow for assembly orders is less complex, especially because assembly cost posting only occurs once and therefore does not generate work-in-process inventory.

The following journal postings occur during assembly order posting:

The following diagram shows the structure of item and resource ledger entries that result from assembly order posting.

Resource and capacity costs
Note
Machine and work centers are included to illustrate that capacity ledger entries are created from both production and assembly.

The following diagram shows how assembly data flows into ledger entries during posting:

Data flow during posting

Posting Sequence

The posting of an assembly order occurs in the following order:

  1. The assembly order lines are posted.
  2. The assembly order header is posted.

The following table outlines the sequence of actions.

Action Description

Initialize Posting

  1. Make preliminary checks.
  2. Add posting number and modify the assembly order header.
  3. Release the assembly order.

Post

  1. Create the posted assembly order header.
  2. Copy comment lines.
  3. Post assembly order lines (consumption):
    1. Create a status window to calculate assembly consumption.
    2. Get the remaining quantity on which the item journal line will be based.
    3. Reset the consumed and remaining quantities.
    4. For assembly order lines of type Item:
      1. Populate fields on the item journal line.
      2. Transfer reservations to the item journal line.
      3. Post the item journal line to create the item ledger entries.
      4. Create warehouse journal lines and post them.
    5. For assembly order lines of type Resource:
      1. Populate fields on the item journal line.
      2. Post the item journal line. This creates capacity ledger entries.
      3. Create and post resource journal line.
    6. Transfer field values from the assembly order line into a newly created posted assembly order line.
  4. Post the assembly order header (output):
    1. Populate fields on the item journal line.
    2. Transfer reservations to the item journal line.
    3. Post the item journal line to create the item ledger entries.
    4. Create warehouse journal lines and post them.
    5. Reset the assembly quantities and remaining quantities.
Important
Unlike for production output, which is posted at expected cost, assembly output is posted at actual cost.

Cost Adjustment

Once an assembly order is posted, meaning that components (material) and resources are assembled into a new item, then it should be possible to determine the actual cost of that assembly item, and the actual inventory cost of the components involved. This is achieved by forwarding costs from the posted entries of the source (the components and resources) to the posted entries of the destination (the assembly item). The forwarding of costs is done by calculating and generating new entries, called adjustment entries that become associated with the destination entries.

The assembly costs to be forwarded are detected with the Order Level detection mechanism. For information about other adjustment detection mechanisms, see Design Details: Cost Adjustment.

Detecting the Adjustment

The order Level detection function is used in conversion scenarios, production and assembly. The function works as follows:

  • Cost adjustment is detected by marking the order whenever a material/resource is posted as consumed/used.
  • Cost is forwarding by applying the costs from material/resource to the output entries associated with the same order.

The following graphic shows the adjustment entry structure and how assembly costs are adjusted.

Adjustment entry structure

Performing the Adjustment

The spreading of detected adjustments from material and resource costs onto the assembly output entries is performed by the Adjust Cost - Item Entries batch job. It contains the Make Multilevel Adjustment function, which consists of the following two elements:

  • Make Assembly Order Adjustment - which forwards cost from material and resource usage to the assembly output entry. Lines 5 and 6 in the algorithm below are responsible for that.
  • Make Single Level Adjustments - which forwards costs for individual items using their costing method. Lines 9 and 10 in the algorithm below are responsible for that.
Assembly adjustment algorithm
Note
The Make WIP Adjustments element, in lines 7 and 8, is responsible for forwarding production material and capacity usage to the output of unfinished production orders. This is not used when adjusting assembly order costs as the concept of WIP does not apply to assembly.

For information about how costs from assembly and production are posted to the general ledger, see Design Details: Inventory Posting.

Assembly Costs are Always Actual

The concept of work in process (WIP) does not apply in assembly order posting. Assembly costs are only posted as actual cost, never as expected cost. For more information, see Design Details: Expected Cost Posting.

This is enabled by the following data structure.

  • In the Type field on item journal lines, in the Capacity Ledger Entry and Value Entry tables, Resource is used to identify assembly resource entries.
  • In the Item Ledger Entry Type field on item journal lines, in the Capacity Ledger Entry and Value Entry tables, Assembly Output and Assembly Consumption are used to identify the output assembly item entries and the consumed assembly component entries respectively.

In addition, posting group fields on the assembly order header and assembly order lines are populated by default as follows.

Entity Type Posting Group Gen. Prod. Posting Group

Assembly Order Header

Item

Inventory Posting Group

Gen. Prod. Posting Group

Assembly Order Line

Item

Inventory Posting Group

Gen. Prod. Posting Group

Assembly Order Line

Resource

Gen. Prod. Posting Group

Accordingly, only actual costs are posted to the general ledger, and no interim accounts are populated from assembly order posting. For more information, see Design Details: Accounts in the General Ledger

Assemble to Order

The item ledger entry that results from posting an assemble-to-order sale is fixed applied to the related item ledger entry for the assembly output. Accordingly, the cost of an assemble-to-order sale is derived from the assembly order that it was linked to.

Item ledger entries of type Sale that result from posting assemble-to-order quantities are marked with Yes in the Assemble to Order field.

Posting sales order lines where a part is inventory quantity and another part is assemble-to-order quantity results in separate item ledger entries, one for the inventory quantity and one for the assemble-to-order quantity.

See Also