KB Article #66604

Attributes - missing attributes

Problem

--Some attributes are missing in documents and services are missing due to a GUI bug fixed in PassPort 4.3.0_SP11(issue when clicking two times on the save button due to slowness)
--The bug is fixed but issue remains for some objects created before applying this Service Pack. How to solve?


Resolution

After applying the correct Service Pack, solution is to edit documents and services and to save them in the GUI. But how to detect them?
The two SQL requests below provide the list of services and documents with missing attributes:



-- this script must be runned on the PassPort database and returns the Name of the SelectedService
-- that has missing attributes and the AttributeName of the missing ones.
-- To make sure the fields are updated, it is necessary to change their value at least once
-- (i.e. for a combo box attribute change it from the default one and then select the default one again)
-- and before pressing "Finish" make sure they remain with the desired value.
select ss.Name as Name, AttributeName
   from ppm_service s join ppm_selectedservice ss on ss.ServiceOID = s.OID
   join (
select ad.Name as AttributeName, ag.Name as GroupName, sag.ServiceOID as DFOID
       from ppm_attributegroup ag  
       join ppm_serviceattrgroups sag on ag.OID=sag.AttributeGroupOID
       join ppm_attributedef ad on ad.GroupOID = ag.OID
         ) as zzzz on s.OID=DFOID
where (ss.Name, AttributeName) not in
(
select serv.Name as Name, sa.Name as AttributeName
   from ppm_selectedservice serv
   join ppm_serviceattributes sa on serv.OID=sa.ParentOID
);



-- this script must be runned on the PassPort database and returns the Name of the Document
-- that has missing attributes and the AttributeName of the missing ones.
-- To make sure the fields are updated, it is necessary to change their value at least once
-- (i.e. for a combo box attribute change it from the default one and then select the default one again)
-- and before pressing "Finish" make sure they remain with the desired value.
select d.Name as Name, AttributeName
   from ppm_documentform df join ppm_document d on d.FormOID = df.OID
   join (
       select ad.Name as AttributeName, ag.Name as GroupName, dfg.DocumentFormOID as DFOID
       from ppm_attributegroup ag  
       join ppm_documentformattrgroups dfg on ag.OID=dfg.AttributeGroupOID
       join ppm_attributedef ad on ad.GroupOID = ag.OID
       ) as zzzz on df.OID=DFOID
where (d.Name, AttributeName) not in
(
   select doc.Name as Name, da.Name as AttributeName
   from ppm_document doc
   join ppm_documentattributes da on doc.OID=da.ParentOID
);