--- alias: change-material-flow-step description: "This operation modifies a material’s flow or step, requiring specific preconditions for successful execution" --- # Change Material Flow/Step :lock: Material.**ChangeFlowAndStep** ## Overview This operation is used to change the **Flow** or the **Step** of a **Material**. ## Setup No special setup is required other than to meet the preconditions of the transaction. ## Preconditions * The **Material** is active and is not In Transit. * The **Material** is Top-Most, that is, it has no parent. * If changing the **Flow**: * The new **Flow** is active and enabled. * If changing the **Step**: * The **Material** must not be On Hold. * The new **Step** must be defined in the current **Material** **Facility**. * The **Material** is not In Store, In Process, Consumable or Durable. * The new **Step** is active. * Either the **Material** retains the units in the the new **Step** or there are Unit of Conversion Factors defined for the **Material Product** and all of the **Products** of its **Sub-Materials**. * The new **Flow Path** must be different from the current **Flow Path** and it must exist in the new **Flow**. * If the **Step** is being changed, there are no active **Protocol** instances that contain the **Material** being moved and that have the property Inhibit Move From Step set to `true`. * There must not be any required Future Action for the **Material**. * There must not be any Material Time Constraint violated for the **Material** for the current context and transaction. ## Preconditions for Bulk * In addition to the preconditions mentioned above, all **Materials** must: * Be either Top-Most or Sub-Material of the same Parent **Material**. * Have the same **Flow Path**. * Be in the same System State. !!! note All the Materials will be assigned to the new Flow and Step. ## Sequence of Steps 1. Select a **Material** that meets the preconditions listed above. 2. Optionally, review the **Material** details by expanding the Material section. 3. Choose a new Flow Path by selecting a **Flow** followed by a **Step**, or directly in the **Flow** structure. When altering **Steps**, the system will revert the **Material** state to Queued. In cases where the same **Step** is repeated in the **Flow** and the **Material** is in a Processed state (as depicted in the image below), you may opt to enable Force Queued State. Otherwise, the **Material** will stay in the Process state. !!! info It is possible to define the default value for the Force Queued State by editing the entry Context = `Material.ChangeFlowAndStep` for the Element = `ForceQueuedState` in the [[guielementdefaultvalue-gt]] Generic Table. 4. Select **Change** to complete the operation. ![Change Material Flow and Step](images/force_queued_change_material_flow_step.png) !!! info - Depending on the Future Actions configuration, the Material may be put on hold. - If the Material is currently part of an Inspection Order, changing the Material Flow may invalidate the Inspection. - If the Material is currently in a rework or off-flow Flow and the new Flow Path does not belong to the current rework or off-flow Flow, you will be informed that the off-flow information will be cleared. - If the Qualification Count of the Material is greater than `0`, changing the Material Flow may invalidate the Qualification Check.