system.mes.analysis.createCustomValueCalculator()

Sepasoft MES Module Suite

Description

Create a new custom value-calculator object. This is an advanced feature not recommended for most users.  Most use-cases can be accommodated without custom analysis features.

Syntax

system.mes.analysis.createCustomValueCalculator()


  • Parameters

None

  • Returns

CustomValueCalculator valueCalculator - A new custom value-calculator object of the CustomCalculator class.

  • Scope

Gateway

Code Examples

Code Snippet

Code
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.defaultSetGroupValue(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