Monday, April 13, 2020

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

Following code snippet loop through metadata information of AOT objects (this example is to loop through all data entities).


class DataEntityExtension
{
    /// <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:





D365FO - Rotate SSL Certificates in Tier 1 environments

If you face following error all of a sudden when accessing tier 1 environment like I faced, follow next steps in the post to get it working.

































The SSL certificate has been expired and requires renewal





How to renew the certificate? The easiest way is to do through LCS

Go to Environment details page | Maintain | Rotate secrets | Rotate SSL Certificates 

Click OK on next opened screen, environment status changes to Rotating secrets.

Important: This does little bit time so better plan it accordingly.












Refresh environment details page and wait for it to turn to Deployed state and access, it should be fine now.

How to enable new Microsoft teams - Public Preview!

New Microsoft Teams is just AWESOME, quick but useful post below shows how you have this preview feature to make your life EASY!  Open Micr...