--- pdfexport: true module: Semiconductor timetoread: True tutorial: deepdive alias: tutorials-semi-handle-abort-mid-process glightbox: True search: boost: 2 tags: - semiconductor --- # Handle Abort Mid Process The Handle Abort Mid Process feature supports the configuration of wafer classification and defines the actions to be applied for each classification. It ensures the correct action is taken for each wafer or set of wafers when the process is unexpectedly interrupted. !!! note No special licenses are required to use this functionality. ## Overview This tutorial covers the following sections: - **Feature overview** - Explains how Handle Abort Mid Process is intended to be used. - **Scenario** - A simplified example to help understand the underlying logic. - **Configuration** - A step-by-step guide with screenshots and links to key documentation. - **Execution** - Using the feature to run the setup and see it in action, including a video walkthrough. ## Feature This feature enables the creation of a Processing Issue, allowing users to classify the processing state of each sub-material (for example, processed, not processed, issue). Based on the defined classification, the system automatically executes the appropriate disposition actions, which typically include: - Split and Track Out the processed sub-materials. - Split the mid-process sub-materials (according to each issue type), abort them, send to rework, and place them on hold. - Abort the remaining non-processed sub-materials from the original lot. ![Classify the processing state](images/handle_abort_mid_process_001.png) After classifying each sub-material, a **Protocol** can be opened with a workflow for issue investigation when a sub-material is classified as having an issue or being in an unknown state. Following the investigation, the sub-material's processing state and classification can be updated. The corresponding disposition actions are then automatically triggered once the **Protocol** is closed. A Future Merge can be automatically set to join all the materials back together once the pending sub-materials are reprocessed. ## Scenario ### Configuration To assess how this industry and production requirement is addressed, consider a simplified model: Basic entities like **Step**, **Resource**, **Flow**, **Product**, and **Material** can be configured as detailed below: - **Step** - `Coating` - **Resource** - `COATER-001` - **Flow** - `Flow_Metallurgy` - **Product** - `Engine Block H08-P9` - **Material** - `Engine Block H08-P9.002` (this **Material** has three sub-materials) !!! note This is the [Master Data file](masterdata/handle_abort_mid_process_masterdata.xlsx) used to create this model. #### Lookup Tables There are several **Lookup Tables** that need to be configured for this scenario: 1. [[semi-semiprocessingclassification-lt]] ![SemiProcessingClassification](images/handle_abort_mid_process_002.png) 2. [[semi-semiprocessingissueaction-lt]] ![SemiProcessingIssueAction](images/handle_abort_mid_process_003.png) !!! info This table should not be updated with more actions, as this would require subsequent changes to the actual application code. 3. [[semi-semiprocessingissueactionplan-lt]] ![SemiProcessingIssueActionPlan](images/handle_abort_mid_process_004.png) 4. [[semi-semiprocessingissuemergeoption-lt]] ![SemiProcessingIssueMergeOption](images/handle_abort_mid_process_005.png) !!! info This table should not be updated with more actions, as this would require subsequent changes to the actual application code. #### Generic Tables There are several **Generic Tables** that need to be configured for this scenario: 1. [[semi-semiprocessingclassificationsettings-gt]] Define the default action to be executed per Processing Issue and whether a **Protocol** can be triggered. If the Can Trigger Protocol option is enabled, the **Material** opens a **Protocol** after classifying wafers. The actions are executed only after closing the **Protocol**. ![Processing Issue Actions](images/handle_abort_mid_process_006.png) 2. [[semi-semiprocessingissueactionplans-gt]] Define the default actions to be executed for a set of wafers based on the Processing Issue and specify whether a merge occurs. ![Default Actions](images/handle_abort_mid_process_007.png) !!! note This is the [Master Data file](masterdata/process_issue_example_classifications_and_action_plans.xlsx) used for this scenario. #### Smart Tables, Protocols, and Data Collection For all remaining configurations, follow these steps: 1. Create these two **Parameters**: ![Parameter One](images/handle_abort_mid_process_008.png) ![Parameter Two](images/handle_abort_mid_process_021.png) !!! info "Useful Documentation" - [[user-guide-create-parameter]] - [[tutorials-howto-createparameter]] 2. Create a **Data Collection**: ![Data Collection One](images/handle_abort_mid_process_009.png) ![Data Collection Two](images/handle_abort_mid_process_010.png) The second **Data Collection** will be used later in the second scenario of this tutorial. 3. Assign both **Parameters** to the **Data Collection** created above: ![Data Collection Parameters](images/handle_abort_mid_process_011.png) !!! info "Useful Documentation" - [[create-data-collection]] - [[tutorials-howto-createdatacollection]] - [[materialdatacollectioncontext-st]] - [[tutorials-howto-addvaluetosmarttable]] !!! note There is a specific Entity Type - **SemiDataCollectionInstanceProtocolInstanceRelation** - to support the Handle Abort Mid Process functionality. 4. Fill in these two configuration entries with the names of the **Parameters** created above. These configuration entries are filled by default in the system. ![Configuration Entries](images/handle_abort_mid_process_012.png) !!! info "Useful Documentation" - [[user-guide-configuration-index]] 5. Create a **Checklist**: ![Checklist](images/handle_abort_mid_process_019.png) For this scenario, use the following settings in the General Data: - Activity Type - Automatic Action - Rule - insert the out-of-the-box **Rule** called `SemiProtocolDispositionExecutionRule` For the Handle Abort Mid Process, this **Rule** will be automatically triggered when closing the **Protocol** and it will execute the actions defined in the **Data Collection**. ![Protocol Rule](images/handle_abort_mid_process_020.png) This **Checklist** is assigned to the **Protocol** to execute the actions automatically. ![Protocol Checklist](images/handle_abort_mid_process_013.png) !!! info "Useful Documentation" - [[user-guide-create-checklist]] - [[tutorials-howto-createchecklist]] 6. Create a **Protocol**: ![Protocol](images/handle_abort_mid_process_014.png) 7. Create the desired states of the **Protocol** and add the previously created **Checklist** in one of them: ![Protocol States](images/handle_abort_mid_process_015.png) !!! info "Useful Documentation" - [[user-guide-create-protocol]] 8. Create a Hold **Reason** and assign it to the steps where this behavior occurs. The reason must have the `SemiProcessingIssueTempHoldReason` attribute set to true. This means the system searches for Hold reasons with this attribute enabled when performing an automatic release. This attribute is automatically created by the system. ![Hold Reason](images/handle_abort_mid_process_016.png) 9. Fill in the [[semi-semiprocessingissuecontext-st]] table based on the image below: - Assign the **Data Collection** previously created. - Assign the **Protocol** previously created. - Define the Hold **Reason** to be used for placing the **Material** on Hold while the **Protocol** is being executed. ![SemiProcessingIssueContext](images/handle_abort_mid_process_017.png) !!! note This is the [Master Data file](masterdata/process_issue_example_dc_protocol.xlsx) used for this scenario. ### Execution This section explores the Handle Abort Mid Process operations. To test and execute this functionality, follow the use case outlined in a step-by-step scenario and demonstrated in the video at the end of the description. #### First Scenario 1. In the **Step** `Coating`, select the **Material** `Engine Block H08-P9.002` and ensure the sub-materials are assigned to a **Container**. 2. Perform a **Material** Track In. 3. With the **Material** in the In Process state, select **Open Issue**. 4. Classify wafers according to the classification below: - Wafer 1 as `Processed` - Wafer 2 as `Processed` - Wafer 3 as `Unknown` 5. The entire **Material** is placed on Hold and a new **Protocol** is opened. The system selects the Hold Reason defined in the[[semi-semiprocessingissuecontext-st]] table. 6. Execute the **Protocol**. 7. After closing the **Protocol**, splits are performed according to the previously assigned classification: - Wafer 1 and 2 perform Track Out and then wait for wafer 3. - Wafer 3 is aborted and placed on Hold. 8. For wafer 3, perform Release, Track In, and Track Out to the Coating **Step**. After Track Out, this wafer is merged back into the remaining lot. {% set video_id = 'b5216c95ef60a47e8a56f8ad0bf77b2d' %} {% include-markdown 'includes/cloudflare_stream.md' %} #### Second Scenario For this scenario, use the same **Step** and **Materials**. However, in the [[semi-semiprocessingissuecontext-st]] table, change the **Data Collection** to `SemiProcessingIssueHandling` and remove the **Protocol**. ![SemiProcessingIssueHandling](images/handle_abort_mid_process_018.png) 1. In the **Step** `Coating`, select the **Material** `Engine Block H08-P9.002` and assign the sub-materials to a **Container**. 2. Perform a **Material** Track In. 3. With the **Material** in the In Process state, select **Open Issue**. 4. Classify the **Processing status** based on the classification below: - Wafer 1 as `Processed` - Wafer 2 as `Processed` - Wafer 3 as `Not Processed` 5. Classify the **Disposition Action** based on the actions below: - Wafer 1 as `Hold` - Wafer 2 as `Hold` - Wafer 3 as `Abort` 6. Execute the **Protocol**. 7. After closing the **Protocol**, splits are performed according to the **Disposition Action** defined previously: - Wafer 1 and 2 on hold. - Wafer 3 is aborted. 8. This disposition is executed according to the Disposition action provided during the **Data Collection** execution - `SemiDispositionActionPlan` parameter. - This parameter overrides the default actions defined in the [[semi-semiprocessingclassificationsettings-gt]] Generic Table. 9. For wafer 3, perform Track In and Track Out to the `Coating` **Step**. 10. For wafer 1 and 2, perform Release and Track Out. 11. After Track Out, both lots are automatically merged. {% set video_id = '58e7df00d69131bd797110a97bb3def8' %} {% include-markdown 'includes/cloudflare_stream.md' %} !!! info For more information on Handle Abort Mid Process, see [[semi-feature-handleabortmidprocess]] in the User Guide.