codeunitAL Developmentofficial - Microsoftderived - from the source, no model text

Codeunit 9016 "Azure AD Plan"

System Application · System.Azure.Identity

Across versions

  1. BC23present
  2. BC243 procedures added, 3 procedures changed
  3. BC25unchanged
  4. BC262 events removed
  5. BC273 procedures removed
  6. BC281 procedures changed, 1 procedures added
  7. BC29-30unchanged

Neighbourhood 19 connected objects and pages

Codeunit 9020 "User Access Update" (event subscribers)User Access UpdateCodeunit 9018 "Azure AD Plan Impl." (calls, 22 links)Azure AD Plan Impl.Codeunit 9029 "Azure AD User Sync Impl." (calls, 9 links)Azure AD User Sync Impl.Codeunit 9017 "Azure AD User Mgmt. Impl." (calls, 7 links)Azure AD User Mgmt. Impl.Page 9062 "User Security Activities" (calls, 2 links)User Security ActivitiesCodeunit 257 "Experience Tier" (calls)Experience TierCodeunit 2916 "Page Action Provider Impl." (calls)Codeunit 40 "LogInManagement" (calls)LogInManagementCodeunit 4001 "Hybrid Cloud Management" (calls)Hybrid Cloud ManagementCodeunit 460 "Azure AD Licensing Impl." (calls)Azure AD Licensing Impl.Codeunit 776 "Plan User Details" (calls)Plan User DetailsCodeunit 7774 "Copilot Capability Impl" (calls)Codeunit 9003 "Team Member Action Manager" (calls)Team Member Action ManagerCodeunit 9034 "Azure AD User Subscribers" (calls)Azure AD User SubscribersCodeunit 9170 "Conf./Personalization Mgt." (calls)Conf./Personalization Mgt.Codeunit 9178 "Application Area Mgmt." (calls)Application Area Mgmt.Page 5555 "Permission Conflicts Overview" (calls)Page 9807 "User Card" (calls)Page 9818 "User Security Status List" (calls)

Open in the neighbourhood explorer

One hop out, from the extracted relations and call graph. Up to 40 shown; the sections below list them all.

System Application · System.Azure.Identity · BC23-30 · source at ea08af5e · facts from BC29

Events published

  • OnUpdateUserAccessForSaaS(UserSecurityID: Guid; var UserGroupsAdded: Boolean) (integration): Integration event, raised from . Subscribe to this event to update the user groups

Procedures

  • IsPlanAssigned(PlanGUID: Guid): Boolean: Checks if the plan is assigned to any user.
  • IsPlanAssignedToUser(PlanGUID: Guid): Boolean: Checks if the plan is assigned to the current user.
  • IsPlanAssignedToUser(PlanGUID: Guid; UserGUID: Guid): Boolean: Checks if the plan is assigned to a specific user.
  • IsGraphUserEntitledFromServicePlan(var GraphUserInfo: DotNet UserInfo): Boolean: Returns true if the given user is entitled from the service plan.
  • AssignPlanToUserWithDelegatedRole(UserSecurityId: Guid) Δ BC28 + BC28 (obsolete 27.0: Use AssignPlanToUserWithDelegatedRole with SkipUpdateUserAccess parameter instead.): Assigns a plan to the user based on their delegated role.
  • AssignPlanToUserWithDelegatedRole(UserSecurityId: Guid; SkipUpdateUserAccess: Boolean) Δ BC28 + BC28: Assigns a plan to the user based on their delegated role.
  • UpdateUserPlans(UserSecurityId: Guid; var GraphUserInfo: DotNet UserInfo): Updates license plans for a user.
  • UpdateUserPlans(UserSecurityId: Guid; var GraphUserInfo: DotNet UserInfo; AppendPermissionsOnNewPlan: Boolean; RemovePermissionsOnDeletePlan: Boolean): Updates license plans for a user.
  • UpdateUserPlans(UserSecurityId: Guid): Updates license plans for a user.
  • UpdateUserPlans(UserSecurityId: Guid; AppendPermissionsOnNewPlan: Boolean; RemovePermissionsOnDeletePlan: Boolean; RemovePlansOnDeleteUser: Boolean): Updates license plans for a user.
  • UpdateUserPlans(): Updates plans for all users.
  • RefreshUserPlanAssignments(UserSecurityId: Guid): Refreshes the user plans assigned to the given user.
  • TryGetAzureUserPlanRoleCenterId(var RoleCenterID: Integer; UserSecurityId: Guid): Returns the plan roleCenterID for the given user.
  • DoPlansExist(): Boolean: Returns true if at least one plan exists.
  • DoUserPlansExist(): Boolean: Returns true if at least one user is assigned to a plan.
  • DoesPlanExist(PlanGUID: Guid): Boolean: Returns true if the given plan exists.
  • DoesUserHavePlans(UserSecurityId: Guid): Boolean: Returns true if the given user has at least one plan.
  • GetAvailablePlansCount(): Integer: Gets the total number of available plans.
  • GetAllPlanIds(): List of [Guid]: Returns the list of all valid Business Central plan IDs.
  • GetUserPlanExperience(): Enum "User Plan Experience" + BC24: Returns the user plan experience of the user. Either Basic, Essentials, Premium or Other.
  • CheckMixedPlansExist(): Boolean + BC24: Checks whether the plan configuration mixes different plans. Returns true if there are incompatible plans in the system. Only checks when conditions for plan check is met, otherwise returns false.
  • MixedPlansExist(): Boolean Δ BC24: Returns true if there are incompatible plans in the system.
  • GetPlanNames(GraphUserInfo: DotNet UserInfo; var PlanNames: List of [Text]): Gets plans that are assigned to a user in Office 365.
  • GetPlanNames(UserSecID: Guid; var PlanNames: List of [Text]): Gets plans that are assigned to a Business Central user.
  • GetPlanIDs(GraphUserInfo: DotNet UserInfo; var PlanIDs: List of [Guid]): Gets plans that are assigned to a user in Office 365.
  • CheckIfPlansDifferent(GraphUserInfo: DotNet UserInfo; UserSecID: Guid): Boolean: Checks whether a user is assigned to different plans in Business Central and Graph.
  • IsBCServicePlan(ServicePlanId: Guid): Boolean: Checks whether a given service plan is a Business Central service Plan

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 9018 “Azure AD Plan Impl.” (20 calls: AssignPlanToUserWithDelegatedRole → AssignPlanToUserWithDelegatedRole, CheckIfPlansDifferent → CheckIfPlansDifferent, CheckMixedPlansExist → CheckMixedPlansExist, …)

Called by

Deprecations

  • procedure AssignPlanToUserWithDelegatedRole: Pending 27.0 (#if not CLEAN27), “Use AssignPlanToUserWithDelegatedRole with SkipUpdateUserAccess parameter instead.”

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

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 Plan"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.

Evidence 1 sources