What Is Microsoft Dynamics AX and D365FO?

 

Dynamics AX & Dynamics 365 Finance & Operations


Microsoft Dynamics AX is a powerful ERP solution that helps global enterprises organize, automate, and optimize their processes. Microsoft Dynamics AX is simple and intuitive to use and is quick to prove ROI after implementation. Now integrated with the Dynamics 365 product suite, this software tackles alongside other Microsoft software to create a comprehensive, sophisticated ERP.

Dynamics AX helps you take full advantage of new business opportunities across the globe through centralized financial management intelligence and embedded analytics. It also provides country-specific localizations in a single solution, helping your business meet regulations for dozens of countries, including high-growth markets such as Brazil, India, China, and Russia.

Environment Hot-Fixes List Using D365FO

 


Environment Hot-Fixes List Using X++ D365FO 



We All know that information about metadata hotfixes is installed directly from Visual Studio and we can check them Using Apply Hotfix Addins(Dynamics 365 -> Addins -> Apply Hotfix).


The same things we can retrieve using X++ Job

Code Sample


class SLD_DemoClass

{

        public static void main(Args _args)

    {

        new SLD_DemoClass().processExecution();

    }


    public void processExecution()

    {

var environment = Microsoft.Dynamics.ApplicationPlatform.Environment.EnvironmentFactory::GetApplicationEnvironment();

Microsoft.Dynamics.AX.Metadata.Providers.IMetadataProvider metadataProvider = this.getDiskMetadataProvider(environment);

Microsoft.Dynamics.AX.Metadata.Providers.IMetaUpdateProvider updateProvider = metadataProvider.get_Updates();

var moduleInfoList = metadataProvider.ModelManifest.ListModules();

var i = moduleInfoList.GetEnumerator();

setPrefix('Installed KBs on your Instance');

while (i.MoveNext())

{

Microsoft.Dynamics.AX.Metadata.MetaModel.IModuleInfo moduleInfo = i.get_Current();

System.String moduleName = moduleInfo.get_Name();

setPrefix(moduleName);

var updatesHotfixesEnumerator = updateProvider.ListObjects(moduleName).GetEnumerator();;

            while (updatesHotfixesEnumerator.moveNext())

            {

System.String axUpdateName = updatesHotfixesEnumerator.get_Current();

Microsoft.Dynamics.AX.Metadata.MetaModel.AxUpdate axUpdateObject = updateProvider.Read(axUpdateName);

utcdatetime installedDateTime = axUpdateObject.get_AppliedDateTime();

setPrefix(strFmt('Name %1, Installed on %2', axUpdateObject.get_Name(), installedDateTime));

var listKb = axUpdateObject.get_KBNumbers().GetEnumerator();

                while (listKb.MoveNext())

                {

                    info(listKb.get_Current());

                }

            }

        }

    }


    

public  Microsoft.Dynamics.AX.Metadata.Providers.IMetadataProvider getDiskMetadataProvider(Microsoft.Dynamics.ApplicationPlatform.Environment.IApplicationEnvironment _Instance)

        {

            Microsoft.Dynamics.AX.Metadata.Storage.DiskProvider.DiskProviderConfiguration diskProviderConfiguration = new Microsoft.Dynamics.AX.Metadata.Storage.DiskProvider.DiskProviderConfiguration();

diskProviderConfiguration.AddMetadataPath(_Instance.get_Aos().get_PackageDirectory());

Microsoft.Dynamics.AX.Metadata.Storage.MetadataProviderFactory metadataProvicerFactory = new Microsoft.Dynamics.AX.Metadata.Storage.MetadataProviderFactory();


return metadataProvicerFactory.CreateDiskProvider(diskProviderConfiguration);

        }

}





Virtual Fields Vs Computed Fields

  Virtual Field: A virtual field in D365FO is a field that doesn't have a direct representation in the database. It's a field that y...