Показать сообщение отдельно
Старый 09.09.2021, 04:51   #1  
Blog bot is offline
Blog bot
Участник
 
25,646 / 848 (80) +++++++
Регистрация: 28.10.2006
d365technext: Environment Hot-Fixes List Using D365FO
Источник: https://d365technext.blogspot.com/20...OHotfixes.html
==============






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);

}

}















Источник: https://d365technext.blogspot.com/20...OHotfixes.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.