Notifications
Announcements
using Microsoft.Dynamics.AX.Security.Management.Domain;internal final class TestClass{ /// <summary> /// Class entry point. The system will call this method when a designated menu /// is selected or when execution starts and this class is set as the startup class. /// </summary> /// <param name = /_args/>The specified arguments.</param> public static void main(Args _args) { var RolesRepo = SysSecurity::GetSecurityRepository().Roles; var RolesEnumerator = RolesRepo.LoadAll().GetEnumerator(); var DutyRepo = SysSecurity::GetSecurityRepository().Duties; var DutyEnumerator = DutyRepo.LoadAll().GetEnumerator(); var PrivilegeRepo = SysSecurity::GetSecurityRepository().Privileges; var PrivilegeEnumerator = PrivilegeRepo.LoadAll().GetEnumerator(); while (RolesEnumerator.MoveNext()) { Role Role = RolesEnumerator.Current; if(Role.Name == 'Data management administrator') { info(strFmt(/Name %1/, Role.Name)); info(strFmt(/Description %1/, Role.Description)); info(strFmt(/AOT Name %1/, Role.Identifier.ToString())); info(strFmt(/Duty %1/, Role.Duties)); info(strFmt(/Privilege %1/, Role.Privileges)); info(strFmt(/Subole %1/, Role.SubRoles)); } while(DutyEnumerator.MoveNext()) { Duty Duty = DutyEnumerator.Current; if(Duty.Roles.ToString() == Role.Identifier.ToString()) { info(strFmt(/Name %1/, Duty.Name)); info(strFmt(/Description %1/, Duty.Description)); info(strFmt(/AOT Name %1/, Duty.Identifier.ToString())); info(strFmt(/Privilege %1/, Duty.Privileges)); } } } }}
var dutyRepo = SysSecurity::GetSecurityRepository().Duties; var dutyEnumerator = dutyRepo.LoadAll().GetEnumerator(); while (dutyEnumerator.MoveNext()) { Duty duty = dutyEnumerator.Current; if (duty.Roles.ToString() == 'DataManagementAdministrator') { info(strFmt("Name %1", duty.Name)); } }
var dutyRepo = SysSecurity::GetSecurityRepository().Duties; var dutyEnumerator = dutyRepo.LoadAll().GetEnumerator(); while (dutyEnumerator.MoveNext()) { Duty duty = dutyEnumerator.Current; if (duty.Roles.Contains('DataManagementAdministrator')) { info(strFmt("Name %1", duty.Name)); } }
using Microsoft.Dynamics.AX.Security.Management.Domain; internal final class TestClass { /// <summary> /// Class entry point. The system will call this method when a designated menu /// is selected or when execution starts and this class is set as the startup class. /// </summary> /// <param name = "_args">The specified arguments.</param> public static void main(Args _args) { var RolesRepo = SysSecurity::GetSecurityRepository().Roles; var RolesEnumerator = RolesRepo.LoadAll().GetEnumerator(); var DutyRepo = SysSecurity::GetSecurityRepository().Duties; var DutyEnumerator = DutyRepo.LoadAll().GetEnumerator(); var PrivilegeRepo = SysSecurity::GetSecurityRepository().Privileges; var PrivilegeEnumerator = PrivilegeRepo.LoadAll().GetEnumerator(); while (RolesEnumerator.MoveNext()) { Role Role = RolesEnumerator.Current; if(Role.Name == 'Data management administrator') { info(strFmt("Role Name %1", Role.Name)); var Duty1Enumerator = Role.Duties.GetEnumerator(); while(Duty1Enumerator.MoveNext()) { Duty DutyRole = Duty1Enumerator.Current; info(strFmt("Duty Name %1", DutyRole.Name)); var PrivelegeEnumerator = DutyRole.Privileges.GetEnumerator(); while(PrivelegeEnumerator.MoveNext() ) { Privilege privilege1 = PrivelegeEnumerator.Current ; info(strFmt("Privileges Name %1", privilege1.Name)); setPrefix(strFmt("Privileges Name %1", privilege1.Name)); var ActionEnumerator = privilege1.ActionMenuItemGrants.GetEnumerator(); while (ActionEnumerator.MoveNext()) { ActionMenuItemGrant grant = ActionEnumerator.Current; info(strFmt("Action Menu item name%1", grant.Name)); } var DisplayEnumerator = privilege1.DisplayMenuItemGrants.GetEnumerator(); while (DisplayEnumerator.MoveNext()) { DisplayMenuItemGrant grant= DisplayEnumerator.Current; info(strFmt("Display Menu item name%1", grant.Name)); } var OutputEnumerator = privilege1.OutputMenuItemGrants.GetEnumerator(); while (OutputEnumerator.MoveNext()) { OutputMenuItemGrant grant = OutputEnumerator.Current; info(strFmt("Output Menu item name%1", grant.Name)); } } } } } } }
Under review
Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.
As AI tools become more common, we’re introducing a Responsible AI Use…
We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…
These are the community rock stars!
Stay up to date on forum activity by subscribing.
Abhilash Warrier 678 Super User 2025 Season 2
André Arnaud de Cal... 407 Super User 2025 Season 2
Martin Dráb 283 Most Valuable Professional