After having edited, renamed, changed or deleted some Equipment (Area? Line? Cell? etc) in a sequence yet unknown to Support but that does not seem to involve
removing the Material <> Equipment Assignment ..
Customer/User cannot create new Material in Material Manager.
GW→Status→Logs will show
java.lang.Exception: There can only be one property of type Equipment resource property..
Log level to Trace for MESObjectManager will display some extra information
MESObjectManager 18Dec2018 14:26:45 getQueueLength()=4, hasQueuedThreads()=true, getWriteHoldCount()=1, getReadLockCount()=0
MESObjectManager 18Dec2018 14:26:45 Unlock saveMESObjects()
MESObjectManager 18Dec2018 14:26:45 Error in saveMESObject, rolled back changes.
MESObjectManager 18Dec2018 14:26:45 Definition unlock saveMESObjects()
MESObjectManager 18Dec2018 14:26:44 Starting saveMESObjects() - Object count 2, First object name: MaterialClass (373dbd0b-cebf-4cc1-a152-134b6d9f1b7f, SomeClassName, 1 parents, 223 children, 0 custom properties, 0 complex properties)
MESObjectManager 18Dec2018 14:26:44 getQueueLength()=0, hasQueuedThreads()=false, getWriteHoldCount()=0, getReadLockCount()=0
MESObjectManager 18Dec2018 14:26:44 Definition lock saveMESObjects() - Object count 2
MESObjectManager 18Dec2018 14:26:35 Script manager executing event MaterialDef - New for MES Object MaterialDef (null, , 0 parents, 0 children, 0 custom properties, 0 complex properties)
You may also receive this popup while trying to Schedule a Work Order that was created BEFORE an Equipment was changed
Solution for Create or Update Material
- Head to the Object Editor.
Select Segment and Operation, unfortunately I do not have a better method than .. find the orphan Operation Definition (s) that show something like
Error : Validation Error : Error Validating Operation Definition
Edit the Object Description to grab the full name
after you find this, head to DB Browser
SELECT * FROM MESOperationsDefinition where name like '%<name identified in step 1.> %'
(from example above)
SELECT * FROM MESOperationsDefinition where name like '%37132-M-Company:SiteName:3300:HP%'
you should get this
134ace67-e1b4-4634-95f6-877b34b49646,<name identified in step 1.>,,1,OEE,11,1,1,60,Material Out,1,Fri Dec 07 14:59:32 PST 2018
(from example above)
134ace67-e1b4-4634-95f6-877b34b49646,37132-M-Company:SiteName:3300:HP2 15308,,1,OEE,11,1,1,60,Material Out,1,Fri Dec 07 14:59:32 PST 2018
find the corresponding UUIDs in Equipment Property (should be unique but it is not and that is what is causing this problem)
select * from mesequipmentproperty where mesequipmentproperty.mesobjectuuid in
(select MESOperationsSegmentUUID from mesoperationssegment where MESOperationsSegmentUUID in
(select SegmentRefUUID from messegmentdependencyproperty where MESObjectUUID = '134ace67-e1b4-4634-95f6-877b34b49646'));
2994772f-f6db-47ce-afb5-f1ed4017b1c1,5ed63720-e275-4bf6-bfff-3c8db910e1fc,Station,1,aef4cba7-5bcb-4b81-9636-1f11e9453238,Line,,0.0,,Fri Dec 07 13:32:48 PST 2018
628601c5-c438-4272-aa9f-eda67306ea67,5ed63720-e275-4bf6-bfff-3c8db910e1fc,Station,1,aef4cba7-5bcb-4b81-9636-1f11e9453238,Line,,0.0,,Fri Dec 07 13:32:57 PST 2018
1a5b916e-da5d-42da-bd69-5f2ea6e151af,c0ec663d-3777-49ef-ac72-5bb6974a17f3,Station,1,aef4cba7-5bcb-4b81-9636-1f11e9453238,Line,,0.0,,Fri Dec 07 13:32:48 PST 2018
ae725697-fe3a-4133-8368-2724ab4b6823,c0ec663d-3777-49ef-ac72-5bb6974a17f3,Station,1,aef4cba7-5bcb-4b81-9636-1f11e9453238,Line,,0.0,,Fri Dec 07 13:32:57 PST 2018
update mesequipmentproperty set enable = 0 where mespropertyuuid = '1a5b916e-da5d-42da-bd69-5f2ea6e151a'
(first in the list) then...
repeat for all 4 records for found in 3.
- you can now delete the Object in Object Editor and you should now be able to create New Material or Assign Equipment to existing Material
You can also use the attached 7.9.10 .proj
Solution for Schedule Entry
- Using the DB Browser, find the ScheduleRefUUID for
remember the Operation Segment is made of the <Material>-<Enterprise>:<Site>:<Area>:<Line>
SELECT * FROM MESOperationsRequest where name like '%<Material>-<Enterprise>:<Site>:<Area>:<Line>_CO%'
Use the following Code in your Script Console
scheduuid = system.mes.loadMESObject('<xxxx>')
#if you want to check that you are looking at the correct object
There can only be one property of type Equipment MES property error