--- pdfexport: true alias: tutorials-rework timetoread: true tutorial: full description: "The documentation outlines configuring a system for reprocessing defective materials through a controlled rework workflow, including setting limits and tracking" --- # Rework Rework is the process of routing **Material** through a temporary repair **Flow** due to a detected defect or failure. After the repair is completed, the **Material** returns to a specified Return Flow Path position, referred to as the Return Point. This ensures defective **Materials** are reprocessed in a controlled manner, maintaining process integrity and traceability, while reducing waste and improving production efficiency throughout the workflow. ## Overview In this tutorial, we will explore the following key sections: - **Overview** Introduction to the Rework operation — its application and value in manufacturing workflows. - **Rework Configuration Scenarios** Key configuration elements required to enable and manage Rework operations: - Setup - Reasons - Go To and Return Flow Paths - On Rework Rules - Applicable States - **Rework Limits** Managing Rework Limits and Resetting Counters. - **Final Considerations** Supplementary information. ## Rework Configuration Scenarios This section details the configuration required to enable and manage Rework within a **Flow**, covering all necessary elements to guide you through setting up Rework Paths effectively. !!! tip To follow along with this tutorial, use this [Master Data file](masterdata/rework_md.zip), which contains all necessary data to replicate the examples. ### Setup Before starting, ensure the Master Data is loaded in your MES, and select the **Flow** you wish to work with. For this tutorial, consider the Assemble Child **Flow** illustrated below, which contains essential **Steps** involved in semiconductor assembly operations and will be used to demonstrate the configuration of Rework Paths. ![Screenshot showing a manufacturing process step, specifically die attach, as part of the rework assemble process.](images/rework_assemble.png) To begin, select **Edit** on the top ribbon and choose the **Step** where Rework will be configured. Then, open the Step Configuration panel by selecting the :core-static-settings-sm: icon on the right side of the **Step** section. Use the :core-static-add-sm: and :core-static-delete-sm: icons to add or remove Rework Paths for that **Step**, and for each Rework Path, specify: === "Reasons" **Reasons** must be of type Off-Flow. They are configured at the **Step** level, and when assigning a **Reason** to a **Step**, it must be applied specifically for Rework. For more information, see [[user-guide-manage-reasons]]. You must associate one or more **Reasons**, and if multiple **Reasons** are defined for a given **Step**, you must select one when performing the operation. ![Screenshot showing setup options with "Reasons" and "Step" fields.](images/rework_reason.png) === "Go To and Return Flow Paths" * **Go To Flow Path**: Specifies the Flow Path where the **Material** will be routed for Rework. * **Return Flow Path**: Defines the Flow Path where the **Material** will re-enter after completing Rework. This Return Point can be the same **Step** from which Rework was initiated or a different one, depending on your process. ![Screenshot showing a setup configuration for rework, highlighting the return flow path selection.](images/rework_go_to_path.png) !!! warning "Security Feature" The `Material.ReworkOverride` security feature allows authorized users to override specific steps within the rework process. Access to this feature should be restricted to specific roles to ensure traceability and process control. === "On Rework Rule" The On Rework Rule defines a specific **Rule** (linked to **DEE Actions**) of scope Material Tracking, that is triggered when a **Material** is routed through a Rework Path. This **Rule** enables automated actions when entering or exiting a specific **Step**, such as sending notifications or opening a quality protocol. ![Screenshot showing a setup for overriding rework rules, with focus on Material.ReworkOverride security feature.](images/rework_rule.png) === "Applicable States" - **Applicable to Queued** - Enables the Rework Path when the **Material** is in a Queued state. - **Applicable to Processed** - Enables the Rework Path when the **Material** has already been Processed. If the **Material** is not in the configured state, the system will prevent Rework. ![Screenshot showing a setup for enabling the Rework Path in a manufacturing process.](images/rework_state.png) The following video presents a general walkthrough of the Rework Path setup: {% set video_id = '23a3bfdb7d5e32d6423793f42b4616f2' %} {% include-markdown 'includes/cloudflare_stream.md' %} !!! note For more information, see [[user-guide-rework-material]]. ## Rework Limits Excessive or uncontrolled Rework can compromise product quality, traceability, and overall efficiency. To prevent this, limits can be configured at the **Product**, **Step**, or **Reason** level, applied individually or in combination, based on your process needs. This section explains how to set up Rework Limits, track Rework counts, and how to reset counters when needed. To begin, use the **Rework Limits** section under the General Data section of the [[user-guide-create-product]] wizard, as demonstrated below. ### Apply Global Rework Limit This limit sets the maximum number of times a **Product** can be reworked. Select whether to Apply Global Rework Limits (defaults to `false`). When enabled, define a Global Rework Limit greater than or equal to `0`. If set to `0`, the system will prevent Rework for this **Product**. ![Screenshot showing the Global Rework Limit configuration settings.](images/rework_global_limit.png) To learn how to Apply Global Rework Limits, watch the following video: {% set video_id = 'e96a517da70e12f03852373b9647336b' %} {% include-markdown 'includes/cloudflare_stream.md' %} ### Apply Step Rework Limits This limit controls how many times a **Material** can be reworked at a specific **Step**. Select whether to Apply Step Rework Limits (defaults to `false`). These limits are defined in the [[stepreworklimitscontext-st|Step Rework Limits Context]] Smart Table, where each **Step** can be assigned a Rework Limit. ![Screenshot showing a checkbox selection option for applying rework limits.](images/rework_step_limit.png) To learn how to Apply Step Rework Limits, watch the following video: {% set video_id = 'ef38720ece3ff82a13b8199432e1fbbe' %} {% include-markdown 'includes/cloudflare_stream.md' %} ### Apply Reason Rework Limits This limit controls how many times a **Material** can be reworked for a specific **Reason**. Select whether to Apply Reason Rework Limits (defaults to `false`). These limits are defined in the [[reasonreworklimitscontext-st|Reason Rework Limits Context]] Smart Table, where each **Reason** can be assigned a Rework Limit. ![Screenshot showing a dialog box with options related to applying rework limits, specifically for selecting whether to apply reason rework limits.](images/rework_reason_limit.png) To learn how to Apply Reason Rework Limits, watch the following video: {% set video_id = 'dea551a5a1154983927954abe5ad89ee' %} {% include-markdown 'includes/cloudflare_stream.md' %} !!! note For more information on how to configure Rework Limits on Products, see [[user-guide-create-product]]. Information about the Rework status is displayed in the Holds/Off-Flows/Rework section of the **Material**, under the **Reworks & Off-Flows** tab: ![Screenshot showing a graph or chart related to rework limits on a production track.](images/rework_track.png) ### Reset Counters The system tracks the number of times a **Material** has undergone Rework. If a **Material** has reached its configured Rework Limit but additional Rework is considered necessary, the `Material.ResetMaterialReworkCounters` security feature allows authorized users to perform a reset of the counters. For more information, see [[user-guide-reset-material-rework-counters]]. ![Screenshot showing a rework reset counter interface.](images/rework_reset_counters.png) !!! warning "Security Feature" Access to the `Material.ResetMaterialReworkCounters` security feature should be restricted to specific roles to ensure traceability and process control. ## Final Considerations ### Return Point - **Prior to version 11.0:** the Return Point for a Rework Path was required to be within the same Child **Flow**. - **Since version 11.1:** the Return Point can be set to to any **Step** within the Main **Flow**, making the configuration more flexible and practical. ### Rework Path Inheritance **Flows** inherit Rework Paths from their Child **Flows**. Therefore, Rework Paths configured within Child **Flows** are automatically available for **Materials** processed in the Parent **Flow**. For more information on this inheritance behavior, see [[tutorials-flowmodeling#rework-flow-paths|Rework Flow Paths]].