Search code examples
axaptadynamics-ax-2012

Ax 2012 component existence in all layers and models


Can anybody help me how to find a component existence in all layers and models installed in that layer. i.e find all the layers and models in which a particular component(ax 2012) exists. For example how to find all the layers and models in which CustTable exists. Is there any class or table that stores this information. please help me. Thanks in advance.


Solution

  • Comment is limited :(

    Do you need to search through source code? Are you searching for merge candidates? Tell me your business requirement.

    Here is the query returning elements that contains CustTable within selected models:

    SELECT
       me.Name ElementName
       , Layer.Name Layer
       , mm.Name ModelName
       , ElementTypes.ElementTypeName
    FROM ModelElement me
       JOIN ModelElementData med
          ON med.ElementHandle = me.ElementHandle
             AND me.ParentHandle = 0 -- only root elements
       JOIN ModelManifest mm
          ON mm.ModelId=med.ModelId
       JOIN Layer
          ON Layer.Id = med.LayerId
       JOIN ElementTypes
          ON me.ElementType = ElementTypes.ElementType
    WHERE EXISTS (
       SELECT null
       FROM ModelElement child
          JOIN Sources s
             ON s.SourceHandle = child.ElementHandle
                AND s.LayerId = med.LayerId
                AND child.RootHandle = med.ElementHandle
       WHERE cast([SourceText] as nvarchar(max)) like '%CustTable%'
    )
    AND mm.Name IN ('Foundation','I4C')