--- alias: user-guide-business-workflow-task-material-rework render_macros: false description: "This task directs material to rework based on defined conditions and inputs" --- # Rework The task allows the user send a Material to Rework. ![Diagram showing a business workflow task for material rework.](images/business_workflow_task_material_rework.png) ??? example "Example" Trigger: - Task Name: `MaterialAbortPost_1` - Meaning: After performing Abort Material. Condition: - Input Expression: `{{$MaterialAbortPost_1.Material.LastProcessedResource.Type=="Legacy"}}` - Meaning: If the last Resource where the Material was processed is of type "Legacy". Action: - Input: - `{{$MaterialAbortPost_1.Material}}` - `"Equipment Malfunction"` - `"Repack:A:1/Repack Step:1"` - Meaning: The Material that was aborted is sent to the rework path `"Repack:A:1/Repack Step:1"`, with reason `"Equipment Malfunction"`. ## Behavior The user will define a Material, a Rework Reason and a Rework Flow Path. ## Inputs | Name | Data Type | Description |Expression| | ---------------- | ---------- | - |--- | | `Material` | `Material` | The Material that will be sent to Rework |- `{{$.Material}}`
- ``| | `ReworkReason` | `Reason` | The Reason which is applicable to Rework |- ``| | `ReworkFlowPath` | `String` | The Flow Path where the Material will be sent |- ``| | `Comment` | `String` | An optional comment that will be associated with the operation that is being executed || ## Outputs | Name | Data Type | Description | | --------------- | ---------- | - | | `Material` | `Material` | The Material that was sent to Rework | ## Remarks The Material input can be defined by the user as a simple name or an expression, such as **\{\{\$task.Material\}\}** where `task` is the name of a block that has the Material as input/output.