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

Codeunit 9018 "Azure AD Plan Impl."

System Application · System.Azure.Identity

Across versions

  1. BC23present
  2. BC246 procedures added, 3 procedures removed
  3. BC25-27unchanged
  4. BC282 procedures changed, 1 procedures added
  5. BC291 procedures added
  6. BC30unchanged

Neighbourhood 9 connected objects and pages

Codeunit 9027 "Plan Ids" (calls, 23 links)Plan IdsCodeunit 9016 "Azure AD Plan" (calls, 22 links)Azure AD PlanCodeunit 9024 "Azure AD Graph User" (calls, 8 links)Azure AD Graph UserCodeunit 9012 "Azure AD Graph" (calls, 6 links)Azure AD GraphCodeunit 9822 "Plan Configuration Impl." (calls, 4 links)Plan Configuration Impl.Codeunit 9825 "Plan Configuration" (calls, 3 links)Plan ConfigurationCodeunit 152 "User Permissions" (calls, 2 links)User PermissionsCodeunit 457 "Environment Information" (calls)Environment InformationCodeunit 9026 "User Login Time Tracker" (calls)User Login Time Tracker

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

Properties

Property Value
Access Internal
Permissions tabledata Company = r, tabledata Plan = rimd, tabledata User = r, tabledata “User Personalization” = rm, tabledata “User Plan” = rimd

Events published

  • OnBeforeIsBcServicePlan(var Skip: Boolean) (internal)
  • OnInitializeRoleCenter(var RoleCenterId: Integer; var Handled: Boolean) (internal)

Event subscriptions

  • OnAfterDeleteUser subscribes to Table “User” OnAfterDeleteEvent

Procedures

  • IsPlanAssigned(PlanGUID: Guid): Boolean
  • IsPlanAssignedToUser(PlanGUID: Guid): Boolean Δ BC28
  • IsPlanAssignedToUser(PlanGUID: Guid; UserGUID: Guid): Boolean Δ BC28
  • IsGraphUserEntitledFromServicePlan(var GraphUserInfo: DotNet UserInfo): Boolean
  • UpdateUserPlans(UserSecurityId: Guid; var GraphUserInfo: DotNet UserInfo; AppendPermissionsOnNewPlan: Boolean; RemovePermissionsOnDeletePlan: Boolean)
  • UpdateUserPlans(UserSecurityId: Guid; AppendPermissionsOnNewPlan: Boolean; RemovePermissionsOnDeletePlan: Boolean; RemovePlansOnDeleteUser: Boolean)
  • UpdateUserPlans()
  • RefreshUserPlanAssignments(UserSecurityID: Guid)
  • TryGetAzureUserPlanRoleCenterId(var RoleCenterID: Integer; UserSecurityID: Guid)
  • DoPlansExist(): Boolean
  • DoUserPlansExist(): Boolean
  • DoesPlanExist(PlanGUID: Guid): Boolean
  • DoesUserHavePlans(UserSecurityId: Guid): Boolean Δ BC28
  • GetAvailablePlansCount(): Integer
  • GetAllPlanIds(): List of [Guid]
  • GetUserPlanExperience(): Enum "User Plan Experience" + BC24
  • CheckMixedPlansExist(): Boolean + BC24 + BC24
  • CheckMixedPlansExist(PlanNamesPerUserFromGraph: Dictionary of [Text, List of [Text]]): Boolean + BC24 + BC24
  • MixedPlansExist(): Boolean Δ BC24 + BC24 − BC24
  • MixedPlansExist(PlanNamesPerUserFromGraph: Dictionary of [Text, List of [Text]]): Boolean Δ BC24 + BC24 − BC24
  • IsBCServicePlan(ServicePlanId: Guid): Boolean
  • AssignPlanToUserWithDelegatedRole(UserSID: Guid; SkipUpdateUserAccess: Boolean) + BC28 − BC28
  • GetPlanIDs(GraphUserInfo: DotNet UserInfo; var PlanIDs: List of [Guid])
  • GetPlanNames(GraphUserInfo: DotNet UserInfo; var PlanNames: List of [Text])
  • GetPlanNames(UserSecID: Guid; var PlanNames: List of [Text])
  • CheckIfPlansDifferent(GraphUserInfo: DotNet UserInfo; UserSecID: Guid): Boolean

Plus 17 local procedures.

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.

Called by

  • Codeunit 9016 “Azure AD Plan” (20 calls: AssignPlanToUserWithDelegatedRole → AssignPlanToUserWithDelegatedRole, CheckIfPlansDifferent → CheckIfPlansDifferent, CheckMixedPlansExist → CheckMixedPlansExist, …)

Recent changes

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

Evidence 1 sources