--- alias: tutorials-workspaces-hold-release-materials description: "Build a Quality Control Workspace, review a hold on Light Butter, and Dispatch and Track-In the Material on Baker-03 after release in MES." --- # Hold and Release Materials from a Quality Workspace ## Overview At `Cookie Factory`, a quality engineer needs to review an unexpected result for the `Light Butter` **Material** at the `Quality Inspection` **Step**. Placing the **Material** on hold prevents it from proceeding while the issue is investigated. In this exercise, you will: - Configure a **Workgroup** to define the inspection **Materials** and **Resources** available to the quality engineer. - Build a **Workspace** with a filtered **Material** list and customized **Hold** and **Release** buttons. - Connect the **Material** selection to the buttons and configure access to both the quality and production **Workspaces** using the same **Workgroup** context. - As the quality engineer, Hold a **Material** for review, inspect the hold details, and Release it. - Dispatch and Track-In the **Material** after release. This scenario builds on [[tutorials-workspaces-view-assigned-equipment]] and shows how connected widgets turn a **Workspace** into a place to act on selected **Materials**. ## Before You Start Complete [[tutorials-workspaces-workgroups-prerequisites]], including the working model and Quality Engineer Security Features. Ensure you have: - The production **Workspace** and **Resource** context from the [[tutorials-workspaces-view-assigned-equipment|Operator Workspace]] scenario. - A **Material** ready for inspection, with no active holds and suitable **Resources** available for processing after release. - An Active **Workgroup** with **Workspace** scope for the quality activities. ## Sequence of Steps ### 1. Prepare the Workgroup Context Edit the quality **Workgroup**. On **Workgroup Elements**, add the inspection **Step** with its **Facility**, then save. This **Step**/**Facility** assignment supplies the context for the **Material** list. ![Screenshot showing Quality Inspection and Cookie Factory assigned as a Workgroup Step and Facility.](../images/scenario02_edit_workgroup.png) !!! info For more information, see: - [[user-guide-create-step]]. - [[user-guide-create-flow]]. - [[user-guide-create-material]]. - [[user-guide-create-service]]. - [[user-guide-edit-workgroup]]. ### 2. Build a Filtered Materials View 1. Create a **UI Page** named `Quality & Compliance` with **UI Type** `Page`, **Scope** `Workspace`, and **Layout** `Desktop (1920 x 1080)`. 2. In the **Designer**, drag a **Filter** widget onto the empty canvas and open its settings. 3. In the **General** tab, name the **Filter** `Quality Material Filters`. ![Screenshot showing the General tab configuration of the Filter widget.](../images/scenario02_uipage01.png) 4. In **Setup**, open the :iot-synchronize-lg: template dropdown beside **Entity Type** and select **Material Grid Filter**. This template configures the **Filter** and its data source connections. Confirm that **Include Inner Widget** is enabled; you will add the **Grid** widget manually. ![Screenshot showing the Setup tab configuration of the Filter widget.](../images/scenario02_uipage02.png) 5. In **Filters**, select the `Name` filter provided by the template, change its Operator to **Contains**, and set its label to `Material Name`. Select **Save and Close**. ![Screenshot showing the Filter tab configuration of the Filter widget.](../images/scenario02_uipage03.png) 6. Drag a **Grid** widget into the inner section of the **Filter** widget. Open its settings and name it `Quality Materials`. ![Screenshot showing the General tab configuration of the Grid widget.](../images/scenario02_uipage04.png) 7. In **Columns**, select :iot-synchronize-lg: and apply the **Material** template. Select **Save and Close**. ![Screenshot showing the Columns tab configuration of the Grid widget with the Material template applied.](../images/scenario02_uipage05.png) 8. Open the **Links** diagram for the **UI Page** and confirm that `GetWorkgroupMaterials` is connected: **Changed Filters** feeds **Filters**, and **Materials** feeds the `inner$Data` input of the **Filter** widget. Keep the generated **Workgroup** and pagination links, and save the page. ![Screenshot showing the Quality Material Filters and Quality Materials Grid in the UI Page builder.](../images/scenario02_uipage06.png) The **Filter** narrows the **Material** data source results; the **Grid** displays those results and supplies the selection for the buttons you will add next. !!! info For more information, see [[user-guide-uipage-widgets-filter#using-templates|Filter Templates]] and [[user-guide-uipages-design#links|UI Page Links]]. ### 3. Add Customized Buttons 1. Drag two **Button** widgets onto the canvas beside the **Materials** view. In **General**, name them `Quality Hold` and `Quality Release`. 2. Configure their **Setup** settings as follows: | Setting | Quality Hold | Quality Release | | --- | --- | --- | | **Action Button** | `Material.Hold` | `Material.Release` | | **Action Type** | System Action | System Action | | **System Action** | `Material.Hold` | `Material.Release` | | **Text** | `Hold for Review` | `Release after Review` | | **Security Feature** | `Material.Hold` | `Material.Release` | | **Refresh page on success** | `true` | `true` | 3. In **Style**, set **Font Size** to **Large** so the button labels are easy to read. Optionally, define a customized background color. ![Screenshot showing the Style tab configuration for the Button widget.](../images/scenario02_uipage07.png) 4. Review the predefined **Inputs** supplied by each System Action. These determine the selection mode and input structure to use for the grid links in the next step. ![Screenshot showing the Hold for Review button configured with the Material Hold system action.](../images/scenario02_uipage08.png) 5. Select **Save and Close** for each button. ![Screenshot showing the Hold for Review and Release after Review buttons.](../images/scenario02_uipage09.png) The buttons open the standard **Hold** and **Release** operations with the selected **Materials** as context. The quality engineer will still choose the applicable hold reason and confirm the operation. !!! info For more information, see [[user-guide-uipage-widgets-button]]. ### 4. Connect the Grid Selection to Both Actions The **Filter** exposes the selected rows of the inner **Grid** through `inner$Changed Selection`. Connect this output to the `materials` input on each **Button** using its **Links** tab. 1. Open the settings of the inner **Grid** widget. In **Setup**, set **Selection Mode** to **Multiple**, then select **Save and Close**. ![Screenshot showing Selection Mode set to Multiple in the Grid widget settings.](../images/scenario02_grid_setup_multiple.png) 2. Open the settings of each **Button**, select **Links**, then select :material-plus: > **Link**. Configure the link as shown in the corresponding tab, using your outer **Filter** widget as **Source**. === "Quality Hold Button" ![Screenshot showing the Links tab of the Quality Hold Button with inner$Changed Selection connected to materials.](../images/scenario02_uipage10.png) === "Quality Release Button" ![Screenshot showing the Links tab of the Quality Release Button with inner$Changed Selection connected to materials.](../images/scenario02_uipage11.png) 3. Select **Save and Close** for each **Button**, then save the **UI Page**. 4. Complete the **Change Set** approval process and ensure that `Quality & Compliance` **UI Page** is **Effective**. You can also create these same connections in the **Links** diagram for the **UI Page**. Use either method; each button needs only one selection link. ### 5. Give the Quality Engineer Access Using your administrator account, configure the quality **Role**, **User**, and Hold **Reason** before signing in as the quality user. 1. Follow [[tutorials-workspaces-view-assigned-equipment#4-make-the-workspace-available-to-the-operator-role|the Workspace assignment steps]] for the `Quality Engineer` **Role**. Assign both `Quality & Compliance` and `Production Operations` as its **Workspaces**. 2. Follow [[tutorials-workspaces-view-assigned-equipment#5-assign-the-user-to-baking-lines|the User and Workgroup assignment steps]] for the **User** prepared for this scenario, assigning the `Quality Engineer` **Role** and the `Quality Control Areas` **Workgroup**. 3. In **Business Data** > **Reason**, create or edit `Quality Review` **Reason**. Set **Type** to **Hold**, set **Security Role** to `Quality Engineer`, and ensure the **Reason** is Active. For more details, see [[user-guide-create-reason]]. 4. Open the `Quality Inspection` **Step** and select **Manage Reasons**. Add `Quality Review` to **Hold Reasons**, then select **Update**. The **Reason** must be assigned to this **Step** for it to appear in the Hold operation. !!! info For more information, see: - [[tutorials-howto-assign-workspace-to-role]]. - [[tutorials-howto-give-user-workspace-access]]. - [[tutorials-howto-manage-user-workgroups]]. - [[user-guide-manage-reasons]]. ### 6. Hold a Material and Release It after Review You are now the quality engineer reviewing the `Light Butter` **Material** at `Quality Inspection`. An unexpected inspection result needs investigation. Place the **Material** on hold, inspect the hold information, then release it after the simulated review and start processing on `Baker-03`. 1. After signing in, open the :core-static-home-sm: dropdown and select the `Quality & Compliance` **Workspace** under **Quality Control Areas**. ![Screenshot showing the Homepage icon with the available Workspaces.](../images/scenario02_uipage12.png) 2. In the **Material Name** field, search for `Light Butter`. Select its row and choose **Hold for Review**. ![Screenshot showing the Material list with customized Hold and Release buttons.](../images/scenario02_uipage13.png) 3. Confirm the **Material** and select the `Quality Review` **Reason**. Enter a comment, such as `Unexpected results from review`, and select **Hold**. ![Screenshot showing the Hold Material dialog for Light Butter with Quality Review selected and a comment entered.](../images/scenario02_uipage14.png) 4. Open the `Light Butter` **Material**. The header indicates that the **Material** is on hold. In **Details** > **Holds/Off-Flows/Reworks**, inspect the `Quality Review` entry, its comment, and its Release Role. ![Screenshot showing the Quality Review hold applied to Light Butter, including its comment and Release Role.](../images/scenario02_uipage15.png) For the next part of the exercise, assume the investigation is complete and release has been authorized. 1. On the **Material** page, select **Release**. Select the `Quality Review` hold, and add a release comment. Select **Release** and confirm the success message and removal of the hold indicator. You can also perform this operation from the **Release after Review** button in the **Workspace** after selecting the **Material**. ![Screenshot showing the Release Material wizard for Light Butter.](../images/scenario02_uipage16.png) 2. From the **More** menu on the **Material** page, select **Dispatch and Track-In**. Select `Baker-03` and complete the operation. 3. Confirm the Dispatch and Track-In success messages. In **Details**, verify **System State** is **In Process** and **Resource** is `Baker-03`. Return to **Holds/Off-Flows/Reworks** and confirm that no active holds remain. Watch the recorded flow from **Workspace** selection through Hold, Release, and Dispatch and Track-In: ![type:video-tag](../videos/scenario02_hold_release_and_track_in_material.mp4) !!! info For more information, see: - [[user-guide-hold-material]]. - [[user-guide-release-material]]. - [[user-guide-dispatch-and-track-in-material]]. ## What You Learned You configured a Quality Control **Workspace** with a **Material** filter, an inner **Grid**, and selection links to **Hold** and **Release** buttons. As the quality user, you switched **Workspaces**, used **Hold for Review** for `Light Butter`, and inspected the hold details. You then released the hold from the **Material** page and dispatched and tracked the **Material** in on `Baker-03`, verifying its **In Process** state. ## Next Scenario Continue to [[tutorials-workspaces-manage-resource-maintenance]] to connect **Resource** selection to maintenance orders and their execution actions.