Codeunit 9012 "Azure AD Graph"
System Application · System.Azure.Identity
Across versions
- BC23-25present
- BC261 procedures removed
- BC27-30unchanged
Neighbourhood 13 connected objects and pages
System Application · System.Azure.Identity · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Public |
Procedures
GetUser(UserPrincipalName: Text; var UserInfo: DotNet UserInfo): Gets the user with the specified user principal name from Microsoft Entra.GetCurrentUser(var UserInfo: DotNet UserInfo): Gets the current user from Microsoft Entra.GetUserByAuthorizationEmail(AuthorizationEmail: Text; var UserInfo: DotNet UserInfo): Gets the user with the specified authorization email from Microsoft Entra.GetUserByObjectId(ObjectId: Text; var UserInfo: DotNet UserInfo): Gets the user with the specified object ID from Microsoft Entra.TryGetUserByObjectId(ObjectId: Text; var UserInfo: DotNet UserInfo): Boolean: Tries to return the user with the specified object ID from Microsoft Entra.GetUserAssignedPlans(UserInfo: DotNet UserInfo; var UserAssignedPlans: DotNet GenericList1): Gets the assigned plans for the specified user from Microsoft Entra.GetUserRoles(UserInfo: DotNet UserInfo; var UserRoles: DotNet GenericIEnumerable1): Gets the roles assigned to the user from Microsoft Entra.GetDirectorySubscribedSkus(var DirectorySubscribedSkus: DotNet GenericIEnumerable1): Gets the list of subscriptions owned by the tenant.GetDirectoryRoles(var DirectoryRoles: DotNet GenericIEnumerable1): Gets the directory roles from Microsoft Entra.GetTenantDetail(var TenantInfo: DotNet TenantInfo): Gets details about the tenant from Microsoft Entra.IsM365CollaborationEnabled(): Boolean: Gets the value of whether M365 collaboration is enabled.GetEnvironmentSecurityGroupId(): Text: Gets the name of the Microsoft Entra security group defined in tenant admin center. For more info, see https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/tenant-admin-center-environments#manage-access-using-azure-active-directory-groupsIsEnvironmentSecurityGroupDefined(): Boolean: Returns if the Microsoft Entra security group is defined in tenant admin center.GetUsersPage(NumberOfUsers: Integer; var UserInfoPage: DotNet UserInfoPage): Gets a list of users.GetLicensedUsersPage(AssignedPlans: DotNet StringArray; NumberOfUsers: Integer; var UserInfoPage: DotNet UserInfoPage): Gets a list of licensed users.GetGroupMembers(GroupDisplayName: Text; var GroupMembers: DotNet IEnumerable): Gets a list of users who are members of the specified Microsoft Entra group.GetMembersPageForGroupId(GroupId: Text; NumberOfUsers: Integer; var UserInfoPage: DotNet UserInfoPage): Gets a list of users who are members of the specified Microsoft Entra group.GetMemberIdsPageForGroupId(GroupId: Text; NumberOfUsers: Integer; var UserIdsPage: DotNet UserIdsPage): Gets a list of user IDs of users who are members of the specified Microsoft Entra group.IsGroupMember(GroupDisplayName: Text; GraphUserInfo: DotNet UserInfo): Boolean: Checks if a given user is a member of a Microsoft Entra security group.IsMemberOfGroupWithId(GroupId: Text; GraphUserInfo: DotNet UserInfo): Boolean: Checks if a given user is a member of a Microsoft Entra security group.GetGroupName(GroupId: Text): Text: Gets the group’s display nameGetFirstGroupIdWithName(GroupName: Text): Text: Gets the first Microsoft Entra group object ID that matches the provided display name.GetGroups(): Dictionary of [Text, Text]: Gets all of the Microsoft Entra security groups.IsGraphUserAccountEnabled(UserPrincipalName: Text; var IsEnabled: Boolean): Checks if the Microsoft 365 user account for the specified principal name is enabled. Note: Even if the graph user is enabled, the account may be disabled in Business Central.
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 9014 “Azure AD Graph Impl.” (23 calls:
GetCurrentUser → GetCurrentUser,GetDirectoryRoles → GetDirectoryRoles,GetDirectorySubscribedSkus → GetDirectorySubscribedSkus, …)
Called by
- Codeunit 9029 “Azure AD User Sync Impl.” (8 calls:
FetchUpdatesForDeviceUsers → GetGroupMembers,FetchUpdatesForLicensedUsers → GetLicensedUsersPage,FetchUpdatesForSkippedUsers → IsEnvironmentSecurityGroupDefined, …) - Codeunit 9018 “Azure AD Plan Impl.” (6 calls:
GetAuthenticationEmailFromAuthenticationObjectID → GetUserByObjectId,GetGraphUserPlans → GetEnvironmentSecurityGroupId,GetGraphUserPlans → IsEnvironmentSecurityGroupDefined, …) - Codeunit 9033 “Invite External Accountant” (4 calls:
CreateNewUser → GetUserAssignedPlans,CreateNewUser → TryGetUserByObjectId,IsLicenseAlreadyAssigned → GetUserAssignedPlans, …) - Codeunit 9871 “Security Group Impl.” (4 calls:
FetchAllEntraGroups → GetGroups,TryGetEntraGroupMembers → GetMemberIdsPageForGroupId,TryGetIdByName → GetFirstGroupIdWithName, …) - Codeunit 9011 “Azure AD Graph User Impl.” (2 calls:
InitializeGraphUser → GetCurrentUser,InitializeGraphUser → GetUserByObjectId) - Codeunit 9017 “Azure AD User Mgmt. Impl.” (2 calls:
CreateNewUsersFromAzureAD → GetUsersPage,SynchronizeLicensedUserFromDirectory → GetUser) - Page 1978 “MS 365 License Setup Wizard” (2 calls:
ShowAccessControl → IsEnvironmentSecurityGroupDefined,ShowTAC → IsM365CollaborationEnabled) - Page 9033 “Invite External Accountant” (2 calls:
GetWebClientUrl → GetTenantDetail,Invite → GetTenantDetail) - Codeunit 3705 “Azure AD Tenant Impl.” (1 call:
Initialize → GetTenantDetail) - Codeunit 460 “Azure AD Licensing Impl.” (1 call:
ResetSubscribedSKU → GetDirectorySubscribedSkus) - Codeunit 9034 “Azure AD User Subscribers” (1 call:
TryGetCountryCode → GetTenantDetail) - Page 9807 “User Card” (1 call:
OnAfterGetRecord → IsGraphUserAccountEnabled)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Azure AD Graph"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.