Create a Recipe and Add a Batch for Execution

Sepasoft MES Module Suite

Creating a Recipe and Adding a Batch for Execution

Python
#Create recipe
 
recClsLink = system.mes.batch.recipe.getRecipeClassLink("Allocation Tests")
#recClsLink = system.mes.getMESObjectLinkByName("BatchMasterRecipeClass", "Allocation Tests")

rec = system.mes.batch.recipe.createRecipe('Material In Test', recClsLink)

rec.setRecipeState('Not Validated')
rec.setRecipeScale(0.5)
rec.setQuantity(1000.0)
rec.setUserVersion(1)

proc = rec.createLogic('Procedure');

proc.addStep("P1", 1, system.mes.batch.phase.getBuiltInPhaseLink('Start'))

up = proc.createLogic('P2')
ucLink = system.mes.batch.unitclass.getLink('Test')
up.setUnitClassRef(ucLink)
p2 = proc.addStep("P2", 2, system.mes.batch.phase.getBuiltInPhaseLink('Unit Procedure'))
p2.setLogicRefUUID(up.getUUID())

proc.addLink("P1", "P2")

p3 = proc.addStep("P3", 3, system.mes.batch.phase.getBuiltInPhaseLink('Transition'))
p3.setParameterValue('Transition_Expression', 'P2.Complete = True')
proc.addLink("P2", "P3")

proc.addStep("P4", 4, system.mes.batch.phase.getBuiltInPhaseLink('Terminator'))
proc.addLink("P3", "P4")

up.addStep("UP1", 1, system.mes.batch.phase.getBuiltInPhaseLink('Start'))

pLink = system.mes.batch.phase.getPhaseLink('Add Ingredient B');
up.addStep("UP2", 2, pLink)
up.addLink("UP1", "UP2")

up3 = up.addStep("UP3", 3, system.mes.batch.phase.getBuiltInPhaseLink('Transition'))
up3.setParameterValue('Transition_Expression', 'UP2.Complete = True')
up.addLink("UP2", "UP3")

up.addStep("UP4", 4, system.mes.batch.phase.getBuiltInPhaseLink('Terminator'))
up.addLink("UP3", "UP4")

saveList = system.mes.object.list.createList()
saveList.add(rec)
saveList.add(proc)
saveList.add(up)
system.mes.batch.recipe.validateRecipe(saveList)
#system.mes.batch.recipe.saveRecipe(saveList)

#Add batch to queue
batchID = 'ALL-112234'
recCls = system.mes.getMESObjectLinkByName('BatchMasterRecipeClass', 'Logic Param Tests')
recLink = system.mes.batch.recipe.getRecipeLink('All Logic Levels', recCls)
bqe = system.mes.batch.queue.addEntry(recLink, batchID, batchID, 1)
system.mes.batch.queue.executeEntryCommand(bqe, 'Start')


Sepasoft MES Module Suite