--- 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() }}