--- alias: user-guide-special-insert-material-into-line tags: - unit tracking description: "Insert child materials into parent materials within a tracked-in line step" --- # Special Insert Material into Line :lock: Material.**InsertIntoLine** ## Overview This operation is used to insert a **Material** into a parent **Material** that is tracked-in (in process) at a Line, allowing the user to select the specific Line **Step** where the **Material** will be inserted. As a naming convention, the Material to be inserted is called Child Material and the Material where the Material will be inserted is called Parent Material. ## Setup No special setup is required other than to meet the preconditions of the transaction. ## Preconditions * Both the Parent Material and Child Material: * Are TopMost, Active and Non-Template * Are not on Hold or Stored * Do not have a *FutureAction* set * Are not a part of a **Pick List** or a **Transfer Order** * Must be in a Line **Step** * The *TargetQuantity* must be null * Have the same **Facility**, **Step**, **Flow**, *Flow Path* * Have the same *PrimaryUnits* and *SecondaryUnits* * Regarding the Child **Material**: * It's in state *Queued* * It's *Dispatchable* * If the *PendingReworkReturn* property is true, the Child **Material** can only be inserted via Special Insert Material Into Line and it must be inserted into the LineReworkStep in a **Material** that has the same LineReworkReturnFlowVersion. Note by design at this time, the Resource is not being enforced. !!! note Because this is a more restricted and lightweight operation, there are some checks that are not performed by design (e.g.: certifications, maintenance, product blocks, time-constraints, material dependencies). * Regarding the Parent **Material**: * It's in state *InProcess* * If the Parent **Material** has an **Experiment**, the Child **Material** must have the same **Experiment** property defined. * Regarding the **Resource** current processing the Parent **Material**: * Must be TopMost and of processing type Line * Must be Active and Non-Template * Must have the System State Up * The Inventory Locked must be false * The **Resource** *Enable SubTrackin* property must be true * If the Child **Material** *RequiredResource* is set, the Parent **Material** **Resource** must be equal to that Required **Resource** * Regarding the destination Flow Path where the Child **Material** will be inserted: * In the Parent **Material** structure **Material** Line **Steps**, there must be a valid active **Material** Line **Step** with a reference to that Flow Path * The relationship Parent Material Form to Child Material Form must be defined in the *MaterialForm* table ## Sequence of Steps ### Step 1 1. Select a Child **Material** matching the pre-conditions outlined above. Select *Insert Material Into Line* from the top ribbon. 2. Select a **Resource** matching the pre-conditions outlined above. 3. Select a Parent **Material** currently in state *InProcess* at the **Resource** where the Child **Material** will be inserted. 4. Select in which Line **Step** to insert the ChildMaterial. !!! info If the `PendingLineReworkReturn` property is not set, the default value is the one with `IsFirstStep` set to `true`. In alternative, if `PendingLineReworkReturn` is `true`, the default is the value of the `LineReworkReturnFlowPath` property if it is set; otherwise, the default is the `LineReworkReturnStep`. 5. Review the information and select **Insert** to complete the transaction. ![Screenshot showing a UI element labeled "Insert" in a dialog box related to inserting special materials.](images/special_insert_material_into_line.png) !!! info For more information, see the [Line Material Tracking](../../../tutorials/modules/materials-and-containers/linematerialtracking.md) tutorial.