web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / The Dynamics 365 Library / D365FO - How to read metada...

D365FO - How to read metadata information from AOT through X++

Faisal Fareed Profile Picture Faisal Fareed 10,796 User Group Leader
Following code snippet loop through metadata information of AOT objects (this example is to loop through all data entities).


classDataEntityExtension
{
    /// <summary>
    /// Runs the class with the specified arguments.
    /// </summary>
    /// <param name = "_args">The specified arguments.</param> 
    public static void main (Args _args)
    {
        DMFEntityTableExtension entityTableExtension;

        var entityNames = Microsoft.Dynamics.Ax.Xpp.MetadataSupport::GetDataEntityViewNames();
        Var enumerator = entityNames.getEnumerator();
       
        while (enumerator.MoveNext())
        {
            enumerator.MoveNext();

            Microsoft.Dynamics.AX.Metadata.MetaModel.AxDataEntityView axDataEntity = Microsoft.Dynamics.Ax.Xpp.MetadataSupport::GetDataEntityView(enumerator.Current);

            if (axDataEntity)
            {                
                    entityTableExtension.Label = SysLabel::labelId2String(axDataEntity.Label);
                    entityTableExtension.PublicEntityName = axDataEntity.PublicEntityName;
                    entityTableExtension.PublicCollectionName = axDataEntity.PublicCollectionName;
                    entityTableExtension.EntityName = axDataEntity.Name;
                    entityTableExtension.IsPublic = axDataEntity.IsPublic;
                    entityTableExtension.insert();

                    info(strFmt("Entity Name: %1 -- Entity Label; %2 -- Entity public collection Name: %3 -- Entity Public Name %4 -- Is Entity Public - %5",
                                axDataEntity.Name,
                                SysLabel::labelId2String(axDataEntity.Label),
                                axDataEntity.PublicCollectionName,
                                axDataEntity.PublicEntityName,
                                axDataEntity.IsPublic));
               
            }
           
        }
    }

}

OUTPUT:






This was originally posted here.

Comments

*This post is locked for comments