--- pdfexport: true alias: tutorials-materialassembly timetoread: true tutorial: full description: "This document details how to configure and utilize Material Assembly modes within Critical Manufacturing MES, covering automatic, manual, and replace/disassemble" --- # Material Assembly **Material Assembly** is the process of combining individual **Materials** into a new and different **Product**, which can be a Finished Good or merely part of it, during manufacturing. !!! note It is possible to consume a Material of a given Product within a Material of the same Product. The assembly operation entails **Materials** being joined together using permanent or semipermanent methods. An assemble may also refer to a **Bill of Material** (**BOM**), which is the name given to the assembly items or **Materials** needed for a given **Material Assembly** process. This document will guide you through the set up and usage of the different **Material Assembly** modes available in Critical Manufacturing MES. ## Overview Assemble can be performed in the following ways: - **Automatic At Track In** - where source materials are consumed automatically at track in, without changing the quantity of the main material. - **Automatic At Track Out** - similar to Automatic At Track In except that the **BOM** consumption takes place at track out. - **Explicit** - where source materials must be consumed explicitly between Track In and Track Out. The quantity of the main material is not changed, and it needs to be fully assembled (up until the primary quantity). This is, the remaining quantity must be `0`. - **Explicit Add** - where source materials must be consumed explicitly between Track In and Track Out and the quantity of the main material is increased with each assemble. For this Assembly Type, the quantity of the main material must be equal to `0`, and the quantity is increased from there on. - **Explicit Long Running** - where the assembled total quantity is started, but you do not have to complete the assemble of all the components. You can assemble a component, save, and exit. Then later you can continue the process. ## Automatic ### Automatic at TrackIn ![Automatic Assemble at TrackIn](../../images/assemble_automatic_01.png) ### Automatic at TrackOut ![Automatic Assemble at TrackOut](../../images/assemble_automatic_02.png) Useful information regarding the images above: - CF1, CF2, and CF3 are Consumable Feeds - Mx, My, and Mz are the Consumables - M1 is the Finished or Semi Finished Good - StepX, StepY, and StepZ are the Source Steps - Step1 is the Assembly Step The following list specifies the sequence of steps necessary to configure an Automatic Assemble for **Material**: 1. Create a **BOM** of Scope **Material** - a **BOM** is a versioned object which needs to go through the [[tutorials-change-management|Change Management]] process, and it is bound to a specific target **Product**. 2. Associate the **BOM** to the right **Step(s)**. To do that, edit the BOM Context of the **Step(s)** and specify that the Assembly Type is either Automatic At Track In or Automatic At Track Out. 3. Be sure that the **Resource** which provides **Services** to the **Step** where the **Material** will be assembled has at least as many **Sub-Resources** of type Consumable Feed as there are **BOM** source **Products** defined in the **BOM**. 4. Create as many source **Materials** of the source **Products** defined in the **BOM** in enough quantities to fulfill the required assemble quantities. These **Materials** need to be attached as consumables to the **Sub-Resources** of the main **Resource**. The source **Materials** must be in the defined **BOM Step**, and to be able to attach the source **Materials** to the respective Consumable Feeds, there must be a match between the **Material** required **Service** and the Consumable Feed **Resource** provided **Services**. The Consumable Feed **Services** must be defined with the Processing Type Consumable Feed. 5. Create the main **Material** and move it to the **Step** where it should be assembled. 6. Track in the main **Material**. At the Track-In operation, the system will verify that the **Resource** has all the **Materials**, which must have not expired, in the necessary quantities to fulfill the **BOM** requirements. This is true for Automatic At Track In, and for Automatic at Track Out with the Track-In CheckMode as Quantity. !!! note If the Track-In CheckMode is Product, the system checks if there is any quantity of Materials to start the process - not all the materials are needed. If the Track-In CheckMode is None, there is no verification, but there will be an error at Track-Out if until then the consumables are not added to the Consumable Feeds. 7. In case the Assembly Type is defined as Automatic At Track In, the **BOM** consumption will be performed automatically during the Track-In operation, and the main **Material** quantity is not changed. 8. In case the Assembly Type is set to Automatic At Track Out, the **BOM** consumption will take place automatically during the Track-Out operation, and the main **Material** quantity is not changed. ## Manual ### Explicit ![Explicit Assemble](../../images/assemble_manual_01.png) In the image above, **Material quantity can be zero** means that it must be zero for Explicit Add, but when using Explicit or Explicit Long Running it must be different to zero. The following list specifies the sequence of steps necessary to configure a Manual Assemble for **Material**: 1. Create a **BOM** of Scope **Material** - a **BOM** is a versioned object which needs to go through the [[tutorials-change-management|Change Management]] process, and it is bound to a specific target **Product**. 2. Associate the **BOM** to the right **Step(s)**. To do that, edit the BOM Context fo the **Step(s)**and specify that the Assembly Type is Manual. 3. Create as many source **Materials** of the source **Products** defined in the **BOM** in enough quantities to fulfill the required assemble quantities.These **Materials** need to be Queued in the defined **BOM** Source Step. Moreover, for assemble purposes, the source **Materials** cannot have expired, that is, if an expiration date is defined, it must be in the future. Additionally, the Remaining Floor Life property must not be `0`. 4. Create the main **Material** and move it to the **Step** where it should be assembled. 5. Track in the main **Material**. 6. While the **Material** is In Process, perform as many Assemble **Materials** as desired: - If the Assembly Type is Explicit, the main **Material** Primary Quantity must be fully assembled before the **Material** can be tracked out and its Primary Quantity remains unchanged after each assemble operation. - If the Assembly Type is Explicit Add, the main **Material** can be tracked out at any time and every time an assemble operation takes place, the Primary Quantity is increased. As mentioned above, for this Assembly Type, the quantity of the main **Material** must be equal to `0`. - If the Assembly Type is Explicit Long Running the assembled total quantity is started, but you do not have to complete the assemble of all the components. You can assemble a component, save and exit. Then later you can continue the process. And like the Explicit Assembly Type, its Primary Quantity remains unchanged after each assemble operation. 7. Track out the main **Material**. ## Weigh And Dispense There is a special **Material Assembly** mode when used through the Weigh and Dispense operation that has several configuration needs that apply to that specific use case. If you wast to know more about this operation, see the [[tutorials-weighanddispense]] tutorial or open the operation page under the [[user-guide-weigh-and-dispense-material]] page in the User Guide. ## Replacing or Disassembling a Previously Assembled Material In some industries, components are assembled temporarily merely to support some operations and then later removed when they are not longer needed. For example, in the semiconductor industry, a protective tape is added to wafers before the grinding process, and this take is then removed after the grinding process is complete. In other cases, one or more previously assembled components may need to be replaced some step ahead. For example, in the metallurgy industry, the lubricant that is consumed at the beginning of the process needs to be replaced before the Finish Good **Product** is completed. The Assembly Type **Replace And Disassemble** is used in both of these cases. Essentially a new **BOM**, of Scope **Material**, with the component(s) to be removed or replaced is created and assigned to the **Step(s)** where these operations must be performed. !!! note Although assigned to a Step, the Assembly Type Replace and Disassemble is not of mandatory performance, whereas the other Assembly Types are. Moreover, when you use the Disassemble feature, you need to define how many units of the **Material** have to perform the Disassemble process, and this usually means all of the units. This Disassemble action will reduce the Assembled Quantity property and return the consumed quantity to other source **Materials** according to the definitions of the **BOM**. However, if you choose to use the Replace **Material** operation, both the Disassemble and Assemble operations will be performed sequentially, with the main difference being that the quantity to disassemble and assemble is not moved back to the source **Materials** but rather consumed in the assembly process. !!! note When a BOM is configured in the [[bomcontext-st]] smart table with Replace And Disassemble as the Assembly Type, the system will allow Replacing and Disassembling/Assembling to be used without a previous Assembly process. In this case, after the Material is tracked in, the Assembled Quantity of the Material is set to the same value of the Primary Quantity. !!! info All the consumables of a Finished Good Product can be defined in a single BOM of Scope Material. You do not need to create a BOM for each assemble step; in this same BOM you can have all the consumables for different assembly steps and they can be of any Assembly Types for Scope Material.