Sepasoft MES Module Suite
Create a Batch Recipe based on a Template
This example uses an existing Unit Procedure template to build out a recipe via script.
Reference documentation for this example:
Python |
# Load recipe class and template recipe_class = system.mes.batch.recipe.loadRecipeClass('Template Test', None) template = system.mes.batch.recipe.loadTemplate('GUI Template', None) # Create a new Recipe recipe = system.mes.batch.recipe.createRecipe('Script Using Template Example', recipe_class.asLink()) # Add procedures to recipe... procedure = recipe.createLogic('Procedure') # Create 2 Unit Procedures from the first item in the template list unit_procedure_1 = procedure.createLogic(template[0].asLink(), 'Unit Procedure') unit_procedure_2 = procedure.createLogic(template[0].asLink(), 'Unit Procedure') # Add steps to the procedure procedure.addStep("P1", 1, system.mes.batch.phase.getBuiltInPhaseLink('Start')) # Note additional argument that sets the unit procedure logic from what was created above p2 = procedure.addStep("P2", 2, system.mes.batch.phase.getBuiltInPhaseLink('Unit Procedure'), unit_procedure_1[0].asLink()) p3 = procedure.addStep("P3", 3, system.mes.batch.phase.getBuiltInPhaseLink('Transition')) # Note additional argument that sets the unit procedure logic from what was created above p4 = procedure.addStep("P4", 4, system.mes.batch.phase.getBuiltInPhaseLink('Unit Procedure'), unit_procedure_2[0].asLink()) p5 = procedure.addStep("P5", 5, system.mes.batch.phase.getBuiltInPhaseLink('Transition')) procedure.addStep("P6", 6, system.mes.batch.phase.getBuiltInPhaseLink('Terminator')) p3.setParameterValue('Transition_Expression', 'P2.Complete = True') p5.setParameterValue('Transition_Expression', 'P4.Complete = True') # Configure links procedure.addLink(1, 2) procedure.addLink(2, 3) procedure.addLink(3, 4) procedure.addLink(4, 5) procedure.addLink(5, 6) # Save the recipe and all the logic saveList = system.mes.object.list.createList() saveList.add(recipe) saveList.add(procedure) # Note unit_procedure_1 and unit_procedure_2 are lists and can have additional logic for Operations, add all items to the save list saveList.addAll(unit_procedure_1) saveList.addAll(unit_procedure_2) system.mes.batch.recipe.saveRecipe(saveList) |
Sepasoft MES Module Suite