Skip to end of metadata
Go to start of metadata


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

  1. 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

  2. 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
  3. 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

  4. 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.

  5. 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

Fix Equip Prop 7910.proj

Solution for Schedule Entry

  1. 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%'

  2. 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
    #print scheduuid 

There can only be one property of type Equipment MES property error