# Recipe Validation ## Overview MES shall block, at interlocking, any Panel whose Product is different than the one the Equipment is configured to produce. ### Relevant Artifacts The table below describes the objects for this feature: Name | Type | Is Mandatory | Data Type | Description :------------ | :-------- | :----------: | :-------- | :----------- IoTMetadataDefinition | SmartTable | Yes | | Table to define setup parameters RecipeContext | SmartTable | Yes | Table to define the Recipe to be used at a given Resource context and Product ### How it works - Set `useRecipeNameValidation` key in the `IoTMetadataDefinition` table to `True` to activate the Feature. - Configure the Recipes for each possible product in the `RecipeContext` table. When receiving a BoardRequest message, the panel product is used to query `RecipeContext` table and get the Recipe defined for that product. This recipe is then compared with the actual Equipment recipe. If successful: ![RecipeValidation Ok](./images/recipe/oib_recipevalidation_ok.png) If it is not possible to resolve the Product panel in the `RecipeContext` table (e.g. missing entry for that Product): ![RecipeValidation Error](./images/recipe/oib_recipevalidation_recipeerror.png) If the RecipeContext table references a different Recipe for the panel product: ![RecipeValidation Error](./images/recipe/oib_recipevalidation_materialmismatch.png) !!! note "Dual-Lane Equipments" For dual-lane equipments using different recipes per lane, set `useUpdateRecipeByLane` key to `True`. This way, both the Panel lane and the Recipe lane will be considered during comparison. Otherwise, the first valid recipe sent by the Equipment (at GetRecipeForStation request) will be used for the comparison. ### Example Conditions RecipeContext table: ![RecipeContext](./images/recipe/oib_recipecontext.png) Siplace Console: ![Siplace](./images/recipe/oib_recipevalidation_siplace.png)