---
alias: user-guide-recipe-index
description: "This documentation outlines the structure and usage of a Recipe object within a manufacturing process"
---
# Recipe
:lock: Recipe.**Show**
## Overview
A **Recipe** represents the necessary equipment information for processing a given Material in a Step. It can contain parameters which are static or dynamic and it can also contain a body. A **Recipe** can contain **Sub-Recipes**. This increases the modularity and re-usability of **Recipes**.
!!! info
Recipe Management is a Critical Manufacturing optional module.
## Global And Versioned Data
A **Recipe**, being a change-controlled object, contains global and versioned data components as shown in the next picture.
```mermaid
graph TD
subgraph Recipe
Main1["Global Data
(Without Change Control)"] --- A1[Is Enabled
Is Executable]
Main2["Versioned Data
(With Change Control)"] --- A2[All other]
end
classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class Main1,Main2 mermaid_entity
class A1,A2 mermaid_entitylinked
```
A **Recipe** is resolved using the *Recipe Context*. For more information on how to manage the *Recipe Context*, please refer to the Recipe Context section.
Notice that the **Recipe** resolution is actually a two step process. First, the **Service** is resolved using the Service Context, based on process information, and afterwards the **Recipe** is resolved using the Recipe Context, which is based primarily on equipment information, as shown in the next figure.
```mermaid
graph LR
subgraph Service Context
Main1[Step]
A1[Service]
end
subgraph Recipe Context
Main2[Service]
A2[Recipe]
end
A1 --- Main2
classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class Main1,Main2 mermaid_entity
class A1,A2 mermaid_businessdata
```
## Tying Everything Together
```mermaid
graph LR
C1[Recipe Parameter Overrides Context] --- Main[Recipe]
L1[Recipe Body] --- Main
C2[Recipe Context] --- Main
L2[Recipe Parameter] --- Main
C1 --- L2
A1[Parameter] --- L2
Main --- L3[Recipe Instance]
L3 --- L4[Recipe Instance Parameter]
Main ---- L5[SubRecipe]
L5 ----|SubRecipe| Main
Main --- L6[SubRecipe Parameter]
L6 --- A1
classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
class Main mermaid_entity
class A1,A2,A3,A4,A5,A6,A7,A8,A9,A10 mermaid_businessdata
class L1,L2,L3,L4,L5,L6 mermaid_entitylinked
class C1,C2,C3,C4,C5,C6 mermaid_context
class N1,N2,N3,N4,N5,N6 mermaid_nonbusinessdata
click Main "../../business-data/recipe"
click A1 "../../business-data/parameter"
click C1 "../../administration/tables/smart-tables/recipeparameteroverridecontext"
click C2 "../../administration/tables/smart-tables/recipecontext"
click L5 "../../business-data/recipe"
```
!!! info
**Sub-Recipes** are not **Recipes** that are intended to be used in Sub-Resources.
## Sequence Of Steps
The necessary steps for correctly using a **Recipe** are the following:
1. Create the necessary Parameters - note that **Recipes** can only use **Parameters** of scope *EDC_SPC_Recipe* or *Recipe*.
2. Create the necessary Sub-recipes - if they will be referenced by the new **Recipe**.
3. Create the Recipe - note that it is necessary to associate the *Recipe Version* to a **Change Set*.
4. Approve the Change Set, which contains the *Recipe Version* that has been created.
!!! info
For convenience, the Recipe can be configured to use implicit Change Sets. Please refer to the [Change Set](../change-set/index.md) section for more information.
5. Manage the Recipe Context as appropriate. Note that the *Recipe Context* is used to resolve the **Recipe** for a particular **Service**.
!!! info
Recipe resolution and instantiation only applies to Resources that have the have the property Recipe Management set to true.
!!! info
For more information, see the [Recipe Management](../../../tutorials/modules/recipe-management/recipemanagement.md) tutorial.
{{ generate_index() }}