system.mes.oee.splitDowntimeEvent
Description
Splits an existing downtime event (an OEE state record) at a specified time. This action modifies the original record, shortening its duration, and creates a new record for the remaining time. This is useful for categorizing a single downtime period with multiple causes.
Permissions
This method requires the OEE.WRITE.SAVE permission.
Syntax
system.mes.oee.splitDowntimeEvent(oeeStateRecordId, splitDate)
Parameters
| Parameter | Type | Nullable | Description |
|---|---|---|---|
oeeStateRecordId | String | False | The ID of the OEE state record to split. |
splitDate | Date | False | The date and time at which to split the event. |
Returns
Returns a JSON representation of the new OeeStateRecordDTO object that was split off from the original state record.
| Name | Type | Nullable | Description | Default Value |
|---|---|---|---|---|
id | String | True | The id of the OEE State Record | null |
code | Integer | False | Integer state number | null |
locationId | String | False | Identifier of the associated location where this state record was recorded | null |
locationName | String | True | Name of the associated location | null |
locationPath | String | True | Path of the location where this state record was recorded | null |
name | String | False | Name of the recorded state | null |
calculationType | OeeStateCalculationType | False | Specifies how this state contributes to OEE calculations | DOWNTIME |
color | String | False | Hex color code representing the state visually | "#000000" |
status | Status | False | Status of the OEE record (e.g., running, faulted, canceled, complete) | UNKNOWN |
startDate | Instant | False | Start date and time of the state record | Instant.now() |
endDate | Instant | True | End date and time of the state record | null |
duration | Double | False | Duration of the state record in seconds | 0.0 |
availabilityReasonId | String | True | Identifier of the associated availability reason, if applicable | null |
availabilityReason | String | True | Title of the availability reason. (Name - Code) For display purposes only | null |
availabilityReasonPath | String | True | Path to the current availability reason | null |
interruptionLocationId | String | True | Location id that caused the blocked/starved state on the machine | null |
interruptionLocationName | String | True | Name of the interruption location that caused the blocked/starved state | null |
interruptionLocationPath | String | True | Location path that caused the blocked/starved state on the machine | null |
acknowledged | Boolean | False | Boolean indicating whether the state record has been acknowledged | false |
acknowledgedBy | String | True | Acknowledged By. This is the user who acknowledged the state record | null |
acknowledgedDate | Instant | True | Acknowledged Date. This is the date when the state record was acknowledged | null |
modeRecordId | String | True | Identifier of the associated mode record | null |
rootCauseStateRecordId | String | True | Identifier of the root cause state record, if applicable | null |
primaryAlarmRecordId | String | True | Identifier of the associated OEE Alarm Record, if applicable | null |
primaryAlarmName | String | True | Primary alarm name, if applicable | null |
primaryAlarmDisplayPath | String | True | Primary alarm display path, if applicable | null |
primaryAlarmLabel | String | True | Primary alarm display name, if applicable | null |
notes | String | True | Notes associated with the OEE State Record | null |
enabled | boolean | True | Indicates whether the OEE State Record is enabled | true |
spare1 | String | True | Extra field 1 | null |
spare2 | String | True | Extra field 2 | null |
spare3 | String | True | Extra field 3 | null |
Code Examples
from java.util import Date
import system.date
# The ID of the downtime event to split
stateRecordId = "some-state-record-id"
# The time to split the event
splitDatetime = system.date.parse("2023-10-27 14:30:00", "yyyy-MM-dd HH:mm:ss")
try:
# Split the event
system.mes.oee.splitDowntimeEvent(stateRecordId, splitDatetime)
print "Successfully split downtime event", stateRecordId
# After splitting, you can assign different reasons to the original and new records
# (You would need to query for the new record that was created)
except Exception as e:
print "Error splitting event:", str(e)