Sepasoft MES Module Suite
Custom Value Calculator
Register a custom value-calculator object to the MES Analysis Engine. This is an advanced feature not recommended for most users. Most use-cases can be accommodated without custom analysis features.
Syntax
system.mes.analysis.registerCustomValueCalculator(valueCalculator )
- Parameters
CustomValueCalculator valueCalculator - The custom value-calculator object of a class that extends the CustomCalculator class.
- Returns
Nothing
- Scope
Gateway
Python |
from java.lang import Exception from org.apache.log4j import Logger log = Logger.getLogger("CustomAnalysis") # It creates and registers a custom value-calculator object. class CustomValueCalculator(system.mes.analysis.createCustomValueCalculator().__class__): def __init__(self): import system.mes.analysis system.mes.analysis.createCustomValueCalculator().__class__.__init__(self) def getGroupName(self): return "Custom" def getName(self): return "Custom Value Calculator" def getDescription(self): return "Custom value calculator" def getDataType(self): from java.lang import Integer return Integer def isDataColumn(self): return True def isFilter(self): return True def isGroupBy(self): return True def isOrderBy(self): return True def isEquipmentInfoRequired(self): return False def setGroupValue(self, finalValueItem, finalRow, finalResults, isNewFinalRow, isFinalRow, lastValuesMode, equipmentValueItem, equipmentRow): return self.defaultSetGroupIntegerValue(finalValueItem, finalRow, finalResults, isNewFinalRow, isFinalRow, lastValuesMode, equipmentValueItem, equipmentRow, self.getName()) def getDependencies(self, valueItem): from java.util import ArrayList dependentList = ArrayList() dependentList.add(valueItem.buildValueItemName("Custom Value Source")); return dependentList def calculateRow(self, valueItem, date, row, results): sourceValueItem = valueItem.getDependentValueItem(valueItem.buildValueItemName("Custom Value Source")) value = sourceValueItem.getValue(date) total = valueItem.getData("total") if total == None: if value != None: valueItem.setData("total", value) return True rowIndex = results.getRowCount() - 1 if rowIndex < 0: return True results.setValueAt(rowIndex, valueItem.getColumnIndex(), total) valueItem.setData("total", total + value) return True def calculateFinalRow(self, valueItem, date, row, results): return True try: log.info("Register a custom value-calculator object.") system.mes.analysis.registerCustomValueCalculator(CustomValueCalculator()) except Exception, e: log.warn(e.getMessage()) |
Sepasoft MES Module Suite