Skip to main content

system.mes.oee.validateState

Description

Validates an OEE State object against the system's business rules without saving it. This is useful for checking if a state is valid before attempting to save it.

Permissions

This method requires the OEE.READ.VALIDATE permission.

Syntax

system.mes.oee.validateState(**stateData)

Parameters

An unpacked dictionary of OeeStateDTO fields.

ParameterTypeNullableDescriptionDefault Value
idStringTrueThe id of the OEE Statenull
locationIdStringFalseIdentifier of the associated locationnull
locationPathStringTruePath of the associated locationnull
codeIntegerFalseInteger state number, which must be unique for a given locationnull
nameStringFalseName of the statenull
calculationTypeOeeStateCalculationTypeFalseSpecifies how this state contributes to OEE calculationsDOWNTIME
colorStringFalseHex color code representing the state visually"#000000"
autoAcknowledgeBooleanFalseWhether to automatically acknowledge the state record when it is createdfalse
interruptionLocationIdStringTrueImmediate interruption location that caused a blocked/starved statenull
interruptionLocationPathStringTruePath to the location that caused a blocked/starved statenull
maxRootCauseDelaySecondsIntegerTrueMaximum delay in seconds for looking back at historical state records when resolving root cause for blocked/starved states0
notesStringTrueNotes associated with the OEE Statenull
enabledbooleanTrueIndicates whether the OEE State is enabledtrue
spare1StringTrueExtra field 1null
spare2StringTrueExtra field 2null
spare3StringTrueExtra field 3null

Returns

A JSON object containing validation results. If the object is empty, validation passed. If it contains entries, the keys are the field names and the values are lists of validation error messages.

Code Examples

# Create a new OEE state object
newState = system.mes.oee.newOeeState()

# Set some attributes (leaving required fields blank to trigger validation errors)
newState['enabled'] = True

# Validate the state
validationErrors = system.mes.oee.validateState(**newState)

if not validation_errors:
print "Validation passed. State is valid."
else:
print "Validation failed. Errors:"
for field, errors in validationErrors.items():
print " - {}: {}".format(field, ", ".join(errors))

# Example of a valid state
validState = system.mes.oee.newOeeState()
validState['locationId'] = 'some-location-id'
validState['name'] = 'Running'
validState['code'] = 1
validState['calculationType'] = 'RUNNING'
# ... other required fields ...

errors = system.mes.oee.validateState(**validState)
if not errors:
print "\nThe second state is valid."