---
id: object/codeunit/4001
type: object
title: Codeunit 4001 "Hybrid Cloud Management"
summary: Codeunit 4001 "Hybrid Cloud Management" in HybridBaseDeployment (Microsoft.DataMigration). 100 public procedures, 32 events, 9 event subscribers. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - hybridbasedeployment
versions:
  introduced: "29"
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 7b8340d45e2ea646e9e462b3e297ebc9e0706bbafa655b1946cc29c0db34c724
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/HybridBaseDeployment/app/src/codeunits/HybridCloudManagement.Codeunit.al
    title: src/Apps/W1/HybridBaseDeployment/app/src/codeunits/HybridCloudManagement.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/9200
object_type: codeunit
object_id: 4001
name: Hybrid Cloud Management
namespace: Microsoft.DataMigration
app: HybridBaseDeployment
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 164
  events: 32
  subscribers: 9
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 50
  calls: 22
  called_by: 40
  implements: 0
---

# Codeunit 4001 "Hybrid Cloud Management"

> Codeunit 4001 "Hybrid Cloud Management" in HybridBaseDeployment (Microsoft.DataMigration). 100 public procedures, 32 events, 9 event subscribers. Introduced in BC29, still in BC30.

HybridBaseDeployment · Microsoft.DataMigration · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/HybridBaseDeployment/app/src/codeunits/HybridCloudManagement.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Permissions | tabledata "Intelligent Cloud Status" = rimd, tabledata "Published Application" = r, tabledata AllObj = r, tabledata "Intelligent Cloud" = rimd, tabledata "Hybrid DA Approval" = rim, tabledata "Webhook Subscription" = rimd |

## Events published

- `OnAfterDataLakeMigration(HybridReplicationSummary: Record "Hybrid Replication Summary"; var Handled: Boolean)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleOnFinishAdlMigration
- `OnAfterDisableMigration(SourceProduct: Text)` (integration)
- `OnBeforeShowIRInstructionsStep(var HybridProductType: Record "Hybrid Product Type"; var IRName: Text; var PrimaryKey: Text; var Handled: Boolean)` (integration)
- `OnBeforeShowCompanySelectionStep(var HybridProductType: Record "Hybrid Product Type"; SqlConnectionString: Text; SqlServerType: Text; IRName: Text; var Handled: Boolean; SourceCompaniesTableName: Text; SetupMappingsTableName: Text; ReplicationMappingsTableName: Text)` (integration)
- `OnBeforeShowProductSpecificSettingsPageStep(var HybridProductType: Record "Hybrid Product Type"; var ShowSettingsStep: Boolean)` (integration)
  - subscribers: [Codeunit 46861 "BC14 Wizard"](../codeunit/46861.md) BeforeShowProductSpecificSettingsPageStep, [Codeunit 47012 "SL Hybrid Wizard"](../codeunit/47012.md) BeforeShowProductSpecificSettingsPageStep
- `OnGetHybridProductType(var HybridProductType: Record "Hybrid Product Type")` (integration)
  - subscribers: [Codeunit 4005 "Hybrid BC Wizard"](../codeunit/4005.md) OnGetHybridProductType, [Codeunit 4015 "Hybrid GP Wizard"](../codeunit/4015.md) OnGetHybridProductType, [Codeunit 4020 "Hybrid BC Last Wizard"](../codeunit/4020.md) OnGetHybridProductType, [Codeunit 47012 "SL Hybrid Wizard"](../codeunit/47012.md) OnGetHybridProductType
- `OnGetHybridProductName(ProductId: Text; var ProductName: Text)` (integration)
  - subscribers: [Codeunit 4005 "Hybrid BC Wizard"](../codeunit/4005.md) HandleGetHybridProductName, [Codeunit 4015 "Hybrid GP Wizard"](../codeunit/4015.md) HandleGetHybridProductName, [Codeunit 4020 "Hybrid BC Last Wizard"](../codeunit/4020.md) HandleGetHybridProductName, [Codeunit 47012 "SL Hybrid Wizard"](../codeunit/47012.md) HandleGetHybridProductName
- `OnGetHybridProductDescription(ProductId: Text; var ProductDescription: Text)` (integration)
  - subscribers: [Codeunit 4005 "Hybrid BC Wizard"](../codeunit/4005.md) HandleGetHybridProductDescription, [Codeunit 4015 "Hybrid GP Wizard"](../codeunit/4015.md) HandleGetHybridProductDescription, [Codeunit 4020 "Hybrid BC Last Wizard"](../codeunit/4020.md) HandleGetHybridProductDescription, [Codeunit 46861 "BC14 Wizard"](../codeunit/46861.md) HandleGetHybridProductDescription, [Codeunit 47012 "SL Hybrid Wizard"](../codeunit/47012.md) HandleGetHybridProductDescription
- `OnGetNotificationSource(SubscriptionID: Text; var SourceProduct: Text)` (integration)
- `OnShowProductTypeStep(var HybridProductType: Record "Hybrid Product Type")` (integration)
- `OnShowCustomMigrationStep(var HybridProductType: Record "Hybrid Product Type")` (integration)
- `OnShowSQLServerTypeStep(var HybridProductType: Record "Hybrid Product Type")` (integration)
- `OnShowScheduleStep(var HybridProductType: Record "Hybrid Product Type")` (integration)
- `OnShowDoneStep(var HybridProductType: Record "Hybrid Product Type")` (integration)
- `OnAfterEnableMigration(HybridProductType: Record "Hybrid Product Type")` (integration)
  - subscribers: [Codeunit 4020 "Hybrid BC Last Wizard"](../codeunit/4020.md) PopulateMappingsOnAfterEnableMigration
- `OnCanSetupAdlMigration(var CanSetup: Boolean)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleCanSetupAdlMigration, [Codeunit 4015 "Hybrid GP Wizard"](../codeunit/4015.md) OnCanSetupAdlMigration, [Codeunit 46861 "BC14 Wizard"](../codeunit/46861.md) OnCanSetupAdlMigration, [Codeunit 47012 "SL Hybrid Wizard"](../codeunit/47012.md) OnCanSetupAdlMigration
- `OnCanSetupIntelligentCloud(var CanSetup: Boolean)` (integration)
- `OnReplicationRunCompleted(RunId: Text[50]; SubscriptionId: Text; NotificationText: Text)` (integration)
  - subscribers: [Codeunit 4008 "Hybrid BC Management"](../codeunit/4008.md) UpdateStatusOnHybridReplicationCompleted, [Codeunit 4016 "Hybrid GP Management"](../codeunit/4016.md) HandleGPOnReplicationRunCompleted, [Codeunit 4021 "Hybrid BC Last Management"](../codeunit/4021.md) ReplicationRunCompleted, [Codeunit 46862 "BC14 Migration Orchestrator"](../codeunit/46862.md) HandleBC14OnReplicationRunCompleted, [Codeunit 47013 "SL Hybrid Management"](../codeunit/47013.md) HandleSLOnReplicationRunCompleted
- `OnHandleFixDataOnReplicationCompleted(var Handled: Boolean; var FixData: Boolean)` (integration)
  - subscribers: [Codeunit 4016 "Hybrid GP Management"](../codeunit/4016.md) SkipDataRepair, [Codeunit 46862 "BC14 Migration Orchestrator"](../codeunit/46862.md) SkipDataRepair, [Codeunit 47013 "SL Hybrid Management"](../codeunit/47013.md) SkipSLDataRepair
- `OnCanCreateCompanies(var CanCreateCompanies: Boolean)` (integration)
- `OnCanStartupgrade(var Handled: Boolean)` (integration)
- `OnBackupDataPerDatabase(ProductID: Text[250]; var Handled: Boolean)` (integration)
- `OnBackupUpgradeTags(ProductID: Text[250]; var Handled: Boolean; var BackupUpgradeTags: Boolean)` (integration)
  - subscribers: [Codeunit 4008 "Hybrid BC Management"](../codeunit/4008.md) BackupUpgradeTags, [Codeunit 4021 "Hybrid BC Last Management"](../codeunit/4021.md) BackupUpgradeTags
- `OnRestoreDataPerDatabalseTables(var Handled: Boolean; RunId: Text[50]; SourceProduct: Text)` (integration)
- `OnInvokeDataUpgrade(var HybridReplicationSummary: Record "Hybrid Replication Summary"; var Handled: Boolean)` (integration)
  - subscribers: [Codeunit 4008 "Hybrid BC Management"](../codeunit/4008.md) InvokeDataUpgrade, [Codeunit 4016 "Hybrid GP Management"](../codeunit/4016.md) InvokeDataUpgrade, [Codeunit 4026 "W1 Management"](../codeunit/4026.md) InvokeDataUpgrade, [Codeunit 46862 "BC14 Migration Orchestrator"](../codeunit/46862.md) InvokeDataUpgrade, [Codeunit 47013 "SL Hybrid Management"](../codeunit/47013.md) InvokeDataUpgrade
- `OnInsertDefaultTableMappings(ProductID: Text[250]; DeleteExisting: Boolean)` (integration)
  - subscribers: [Codeunit 40030 "Table and Field Move Mappings"](../codeunit/40030.md) OnInsertDefaultTableMappings, [Codeunit 4008 "Hybrid BC Management"](../codeunit/4008.md) OnInsertDefaultTableMappings, [Codeunit 4021 "Hybrid BC Last Management"](../codeunit/4021.md) OnInsertDefaultTableMappings, [Codeunit 4025 "GP Cloud Migration"](../codeunit/4025.md) OnInsertDefaultTableMappings, [Codeunit 47012 "SL Hybrid Wizard"](../codeunit/47012.md) OnInsertDefaultTableMappings
- `OnHandleRunReplication(var Handled: Boolean; var RunId: Text; ReplicationType: Option)` (integration)
  - subscribers: [Codeunit 46862 "BC14 Migration Orchestrator"](../codeunit/46862.md) BlockReplicationIfMigrationStarted
- `OnVerifyCanReplicateCompanies(var Reason: Text; var CanReplicate: Boolean)` (integration)
  - subscribers: [Codeunit 4021 "Hybrid BC Last Management"](../codeunit/4021.md) HandleVerifyCanReplicateCompanies
- `OnIsUpgradeSupported(var UpgradeSupported: Boolean)` (integration)
  - subscribers: [Codeunit 4016 "Hybrid GP Management"](../codeunit/4016.md) OnIsUpgradeSupported, [Codeunit 4026 "W1 Management"](../codeunit/4026.md) OnIsUpgradeSupported, [Codeunit 46862 "BC14 Migration Orchestrator"](../codeunit/46862.md) OnIsUpgradeSupported, [Codeunit 47013 "SL Hybrid Management"](../codeunit/47013.md) OnIsSLUpgradeSupported
- `OnCreateSessionForDataFixAfterReplication(var CreateSession: Boolean)` (internal)
- `OnBeforeCanScheduleTask(var Handled: Boolean)` (internal)
- `OnIsCloudMigrationCompleted(SourceProduct: Text; var CloudMigrationCompleted: Boolean)` (integration)
  - subscribers: [Codeunit 4025 "GP Cloud Migration"](../codeunit/4025.md) HandleIsCloudMigrationCompleted, [Codeunit 46862 "BC14 Migration Orchestrator"](../codeunit/46862.md) HandleOnIsCloudMigrationCompleted, [Codeunit 47012 "SL Hybrid Wizard"](../codeunit/47012.md) HandleIsCloudMigrationCompleted

## Event subscriptions

- HandleBeforeResetUsersToIntelligentCloudPermissions subscribes to Codeunit "Hybrid Deployment" OnBeforeResetUsersToIntelligentCloudPermissions
- DisableCloudMigrationUnderUpgrade subscribes to Codeunit "Hybrid Deployment" OnCanStartUpgrade
- CreateWebhookSubscriptionOnEnableReplication subscribes to Codeunit "Hybrid Deployment" OnBeforeEnableReplication
- SaveTenantMediaCountOnBeforeRunReplication subscribes to Codeunit "Hybrid Deployment" OnBeforeRunReplication
- HandleCompanyRename subscribes to Table "Company" OnAfterRenameEvent
- HandleCompanyDelete subscribes to Table "Company" OnAfterDeleteEvent
- AddIntelligentCloudToAssistedSetup subscribes to Codeunit "Guided Experience" OnRegisterAssistedSetup
- RenameRecordLinkUsers subscribes to Codeunit "User" OnAfterRenameUser
- WarnNotToManageCompaniesManually subscribes to Page "Companies" OnOpenPageEvent

## Procedures

- `CanHandleNotification(SubscriptionId: Text; ProductId: Text): Boolean`
- `CanHandleServiceNotification(SubscriptionId: Text; ProductId: Text): Boolean`
- `CanSetupAdlMigration(): Boolean`
- `CanGrantPermission(): Boolean`
- `CreateCompanies()`
- `VerifyCanScheduleTasks()` (internal)
- `ClearCompanyCreationStatus()`
- `IsCompanyUnderUpgrade(NewCompanyName: Code[50]): Boolean`
- `IsCloudMigrationUISupported(): Boolean`
- `IsOnPremDevelopmentEnabled(): Boolean`
- `IsIntelligentCloudEnabled(): Boolean`
- `RefreshIntelligentCloudStatusTable()` (internal)
- `BackupDataPerDatabase(var IntelligentCloudSetup: Record "Intelligent Cloud Setup")`
- `DisableDataLakeMigration()`
- `DisableMigrationAPI()` (internal)
- `DisableMigration()`
- `DisableMigration(SourceProduct: Text; Reason: Text; NeedsCleanup: Boolean)`
- `RepairCompanionTableRecordConsistency()`
- `RepairCompanionTables()`
- `FinishDataLakeMigration(HybridReplicationSummary: Record "Hybrid Replication Summary")`
- `GetTelemetryCategory(): Text`
- `GetTotalFailedTables(): Integer`
- `GetTotalSuccessfulTables(): Integer`
- `GetTotalTablesNotMigrated(): Integer`
- `GetSaasWizardRedirectUrl(var IntelligentCloudSetup: Record "Intelligent Cloud Setup"): Text`
- `GetRedirectFilter(): Text`
- `GetChosenProductName(): Text`
- `GetHybridProductName(ProductId: Text): Text`
- `GetNotificationSource(SubscriptionID: Text; var SourceProduct: Text)`
- `HandleShowCompanySelectionStep(var HybridProductType: Record "Hybrid Product Type"; SqlConnectionString: Text; SqlServerType: Text; IRName: Text)`
- `HandleShowCompanySelectionStep(var HybridProductType: Record "Hybrid Product Type"; SqlConnectionString: Text; SqlServerType: Text; IRName: Text; SourceCompaniesTableName: Text; SetupMappingsTableName: Text; ReplicationMappingsTableName: Text)`
- `EnableReplication(var HybridProductType: Record "Hybrid Product Type"; SqlConnectionString: Text; SqlServerType: Text; IRName: Text)` (internal)
- `EnableReplication(var HybridProductType: Record "Hybrid Product Type"; SqlConnectionString: Text; SqlServerType: Text; IRName: Text; SourceCompaniesTableName: Text; SetupMappingsTableName: Text; ReplicationMappingsTableName: Text)` (internal)
- `FinishCloudMigrationSetup(var IntelligentCloudSetup: Record "Intelligent Cloud Setup")` (internal)
- `HandleShowIRInstructionsStep(var HybridProductType: Record "Hybrid Product Type"; var IRName: Text; var PrimaryKey: Text)`
- `GetJobQueueCategory(): Code[10]`
- `CreateAndScheduleBackgroundJob(ObjectIdToRun: Integer; Description: Text[250]): Guid`
- `RefreshReplicationStatus()`
- `ResetCloudData()` (internal)
- `RunAdlMigration(CloudMigrationAdlSetup: Record "Cloud Migration ADL Setup" temporary): Text`
- `RunReplicationAPI(ReplicationType: Option): Text` (internal)
- `RunReplication(ReplicationType: Option): Text`
- `GetReplicationTypeTelemetryText(var HybridReplicationSummary: Record "Hybrid Replication Summary"): Text` (internal)
- `ValidateCustomMigrationTables()` (internal)
- `GetFeatureTelemetryName(): Text` (internal)
- `CheckFixDataOnReplicationCompleted(NotificationText: Text): Boolean`
- `IsReplicationCompleted(ServiceType: Text): Boolean` (internal)
- `SendCompletedCloudMigrationTelemetry()` (internal)
- `RestoreDefaultMigrationTableMappings(DeleteExisting: Boolean)`
- `CompleteCloudMigration()`
- `SendMissingScheduleTasksNotification()`
- `ScheduleDataFixOnReplicationCompleted(RunId: Text[50]; SubscriptionId: Text; NotificationText: Text)`
- `ConstructTableName(Name: Text[30]; TableID: Integer): Text[250]`
- `CreateReplicationMapping(CompanyName: Text; SourceTableID: Integer; DestinationTableID: Integer)`
- `CreateMigrationSetupMapping(CompanyName: Text; SourceTableID: Integer; DestinationTableID: Integer)`
- `GetOrInsertDelegatedAdminApprovalRecord(var HybridDAApproval: Record "Hybrid DA Approval")` (internal)
- `GrantConsentToDelegatedAdmin(var HybridDAApproval: Record "Hybrid DA Approval")` (internal)
- `VerifyCanStartReplication()` (internal)
- `CompanyCreationInProgress(): Boolean` (internal)
- `CanRunReplication(var Reason: Text): Boolean` (internal)
- `IsReplicationInProgress(var Reason: Text): Boolean` (internal)
- `VerifyCanReplicateCompanies(var Reason: Text): Boolean`
- `ChangeRemovePermissionsFromUsers()` (internal)
- `EnableDisableNoCodeMigration()` (internal)
- `EnableDisableOnPremDevelopment()` (internal)
- `InsertExistingCompaniesToHybridCompanyTable()` (internal)
- `VerifyCanCompleteCloudMigration()` (internal)
- `RevokeConsentFromDelegatedAdmin()` (internal)
- `CheckNeedsApprovalToRunCloudMigration(): Boolean` (internal)
- `VerifyCompaniesCreatedSuccessfully(var ErrorMessage: Text): Boolean` (internal)
- `CanSkipIRSetup(SqlServerType: Option; RuntimeNameTxt: Text): Boolean` (internal)
- `CanSetupIntelligentCloud(): Boolean`
- `ExcludePerCompanyTablesFromCloudMigration()`
- `ExcludePerDatabaseTablesFromCloudMigration()`
- `ExcludeTableFromCloudMigration(TableName: Text[250]; CompanyName: Text[30])`
- `RunDataUpgradeAPI(var HybridReplicationSummary: Record "Hybrid Replication Summary")`
- `RunDataUpgrade(var HybridReplicationSummary: Record "Hybrid Replication Summary")`
- `MigrateRecordLinks()`
- `InsertRecordLinkTableMapping()`
- `AddCloudMigrationWizardToAssistedSetup()` (internal)
- `UnblockTable(CompanyName: Text; TableName: Text[250])`
- `OpenWizardAction(OpenWizardNotification: Notification)`
- `CheckMigratedDataSize(HybridCompany: Record "Hybrid Company"): Boolean`
- `GetNoWarningSizeInGB(): Integer`
- `VerifyCanStartUpgrade(var HybridReplicationSummary: Record "Hybrid Replication Summary")`
- `VerifyCanStartUpgrade(var HybridReplicationSummary: Record "Hybrid Replication Summary"; var ErrorMessage: Text): Boolean`
- `SetUpgradePendingOnReplicationRunCompleted(RunId: Text[50]; SubscriptionId: Text; NotificationText: Text)`
- `StartDataUpgrade()` (internal)
- `IsUpgradeCompleted(): Boolean` (internal)
- `GetLastReplicationSummary(var HybridReplicationSummary: Record "Hybrid Replication Summary"): Boolean`
- `GetCloudMigrationStatusText(var CloudMigrationStatusText: Text; var CloudMigrationStatusTextStyle: Text; var MoreInformationTxt: Text)` (internal)
- `CompaniesReplicatedSuccessfully(var HybridReplicationSummary: Record "Hybrid Replication Summary"; var JsonManagement: Codeunit "JSON Management"): Boolean` (internal)
- `IsCompanyReadyForUpgrade(HybridCompany: Record "Hybrid Company"): Boolean`
- `DontShowCompaniesWarningNotification(Notification: Notification)`
- `CompaniesWarningNotificationLearnMore(Notification: Notification)`
- `SendRecordLinkMigrationNotification()` (internal)
- `RecordLinkMigrationLearnMore(Notification: Notification)`
- `DontShowRecordLinkMigrationNotification(Notification: Notification)`
- `RecordLinkBufferBlocked(): Boolean` (internal)
- `IsCustomMigrationEnabled(): Boolean` (internal)

Plus 23 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.

- [Codeunit 6060 "Hybrid Deployment"](../codeunit/6060.md) (15 calls: `DisableDataLakeMigration → DisableDataLakeMigration`, `DisableDataLakeMigration → Initialize`, `HandleShowIRInstructionsStep → CreateIntegrationRuntime`, …)
- [Codeunit 8703 "Feature Telemetry"](../codeunit/8703.md) (8 calls: `CompleteCloudMigration → LogUptake`, `CompleteCloudMigration → LogUsage`, `FinishCloudMigrationSetup → LogUptake`, …)
- [Codeunit 8714 "Audit Log"](../codeunit/8714.md) (7 calls: `FinishCloudMigrationSetup → LogAuditMessage`, `GrantConsentToDelegatedAdmin → LogAuditMessage`, `RunDataUpgrade → LogAuditMessage`, …)
- [Codeunit 5459 "JSON Management"](../codeunit/5459.md) (4 calls: `CheckFixDataOnReplicationCompleted → GetStringPropertyValueByName`, `CheckFixDataOnReplicationCompleted → InitializeObject`, `CompaniesReplicatedSuccessfully → GetStringPropertyValueByName`, …)
- [Codeunit 1990 "Guided Experience"](../codeunit/1990.md) (3 calls: `AddCloudMigrationWizardToAssistedSetup → CompleteAssistedSetup`, `AddCloudMigrationWizardToAssistedSetup → InsertAssistedSetup`, `FinishCloudMigrationSetup → CompleteAssistedSetup`)
- [Codeunit 9801 "Identity Management"](../codeunit/9801.md) (3 calls: `AddWebhookSubscription → IsUserDelegatedAdmin`, `CanGrantPermission → IsUserDelegatedAdmin`, `CanSetupIntelligentCloud → IsUserDelegatedAdmin`)
- [Codeunit 152 "User Permissions"](../codeunit/152.md) (2 calls: `CanGrantPermission → IsSuper`, `CanSetupIntelligentCloud → IsSuper`)
- [Codeunit 40021 "Cloud Mig. Replicate Data Mgt."](../codeunit/40021.md) (2 calls: `ValidateCustomMigrationTables → CheckCanChangeAllIntelligentCloudStatus`, `ValidateCustomMigrationTables → ValidateCustomMigrationTables`)
- [Codeunit 40029 "Hybrid Replication Statistics"](../codeunit/40029.md) (2 calls: `UnblockTable → GetTotalFailedTables`, `VerifyCanCompleteCloudMigration → GetTotalFailedTables`)
- [Codeunit 9024 "Azure AD Graph User"](../codeunit/9024.md) (2 calls: `CheckNeedsApprovalToRunCloudMigration → IsUserDelegatedAdmin`, `CheckNeedsApprovalToRunCloudMigration → IsUserDelegatedHelpdesk`)
- [Codeunit 9999 "Upgrade Tag"](../codeunit/9999.md) (2 calls: `BackupUpgradeTags → BackupUpgradeTags`, `RestoreDataPerDatabaseTables → RestoreUpgradeTagsFromBackup`)
- [Codeunit 40018 "Fix Data OnRun Completed"](../codeunit/40018.md) (1 call: `ScheduleDataFixOnReplicationCompleted → (object)`)
- [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) (1 call: `EnableDisableOnPremDevelopment → Activate`)
- [Codeunit 4011 "Hybrid Message Management"](../codeunit/4011.md) (1 call: `RefreshReplicationStatus → ResolveMessageCode`)
- [Codeunit 4012 "Handle Create Company Failure"](../codeunit/4012.md) (1 call: `CreateCompanies → (object)`)
- [Codeunit 453 "Job Queue - Enqueue"](../codeunit/453.md) (1 call: `CreateAndScheduleBackgroundJob → (object)`)
- [Codeunit 457 "Environment Information"](../codeunit/457.md) (1 call: `IsCloudMigrationUISupported → IsSaaS`)
- [Codeunit 5377 "Webhook Management"](../codeunit/5377.md) (1 call: `CreateWebhookSubscriptionOnEnableReplication → GetNotificationUrl`)
- [Codeunit 9002 "Permission Manager"](../codeunit/9002.md) (1 call: `AddCloudMigrationWizardToAssistedSetup → IsIntelligentCloud`)
- [Codeunit 9016 "Azure AD Plan"](../codeunit/9016.md) (1 call: `CanGrantPermission → IsPlanAssignedToUser`)
- [Codeunit 9027 "Plan Ids"](../codeunit/9027.md) (1 call: `CanGrantPermission → GetBCAdminPlanId`)
- [Page 4000 "Hybrid Cloud Setup Wizard"](../page/4000.md) (1 call: `OpenWizardAction → (object)`)

## Called by

- [Page 4000 "Hybrid Cloud Setup Wizard"](../page/4000.md) (17 calls: `NavigateToBusinessCentral → GetSaasWizardRedirectUrl`, `NextStep → CanSkipIRSetup`, `NextStep → IsOnPremDevelopmentEnabled`, …)
- [Page 40023 "Setup Cloud Migration API"](../page/40023.md) (12 calls: `FinishSetup → FinishCloudMigrationSetup`, `FinishSetup → GetFeatureTelemetryName`, `FinishSetup → OnBeforeShowProductSpecificSettingsPageStep`, …)
- [Page 40021 "Cloud Migration Status API"](../page/40021.md) (11 calls: `CompleteCloudMigration → CompleteCloudMigration`, `CompleteCloudMigration → GetFeatureTelemetryName`, `DisableReplication → DisableMigrationAPI`, …)
- [Codeunit 4014 "Notification Handler"](../codeunit/4014.md) (10 calls: `HandleIntelligentCloudOnInsertWebhookNotification → CanHandleNotification`, `HandleIntelligentCloudOnInsertWebhookNotification → CanHandleServiceNotification`, `HandleNotification → OnReplicationRunCompleted`, …)
- [Page 40063 "Cloud Migration Management"](../page/40063.md) (9 calls: `OnAfterGetCurrRecord → GetCloudMigrationStatusText`, `OnAfterGetCurrRecord → GetLastReplicationSummary`, `OnOpenPage → GetFeatureTelemetryName`, …)
- [Codeunit 4026 "W1 Management"](../codeunit/4026.md) (8 calls: `InvokeDataUpgrade → RepairCompanionTableRecordConsistency`, `InvokeDataUpgrade → StartDataUpgrade`, `InvokeDataUpgrade → VerifyCanStartUpgrade`, …)
- [Codeunit 4008 "Hybrid BC Management"](../codeunit/4008.md) (5 calls: `HandleSetAllUpgradeTags → IsCompanyUnderUpgrade`, `OnInsertDefaultTableMappings → InsertRecordLinkTableMapping`, `UpdateStatusOnHybridReplicationCompleted → CanHandleNotification`, …)
- [Page 4008 "Intelligent Cloud Stat Factbox"](../page/4008.md) (5 calls: `OnOpenPage → GetTotalTablesNotMigrated`, `RefreshStats → GetChosenProductName`, `RefreshStats → GetTotalSuccessfulTables`, …)
- [Codeunit 40021 "Cloud Mig. Replicate Data Mgt."](../codeunit/40021.md) (3 calls: `LoadRecords → RefreshIntelligentCloudStatusTable`, `LogMessageForChangedPreserveData → GetTelemetryCategory`, `LogMessageForChangedReplicateData → GetTelemetryCategory`)
- [Codeunit 4021 "Hybrid BC Last Management"](../codeunit/4021.md) (3 calls: `HandleSetAllUpgradeTags → IsCompanyUnderUpgrade`, `OnInsertDefaultTableMappings → InsertRecordLinkTableMapping`, `UpdateStatusOnHybridReplicationCompleted → CanHandleNotification`)
- [Codeunit 47013 "SL Hybrid Management"](../codeunit/47013.md) (3 calls: `HandleSLOnReplicationRunCompleted → CanHandleNotification`, `InitializationofSLSynchronization → CanHandleNotification`, `InitializationofSLSynchronization → SetUpgradePendingOnReplicationRunCompleted`)
- [Page 4003 "Intelligent Cloud Management"](../page/4003.md) (3 calls: `OnOpenPage → GetFeatureTelemetryName`, `OnOpenPage → IsCloudMigrationUISupported`, `UpdateEditablityOfControls → CanSetupAdlMigration`)
- [Codeunit 40028 "Hybrid Scheduled Task Mgr"](../codeunit/40028.md) (2 calls: `CreateAndScheduleBackgroundJob → GetJobQueueCategory`, `HandleErrors → IsIntelligentCloudEnabled`)
- [Codeunit 40029 "Hybrid Replication Statistics"](../codeunit/40029.md) (2 calls: `OpenLastRunTablesStatus → GetLastReplicationSummary`, `OpenTablesRemaining → GetLastReplicationSummary`)
- [Codeunit 4016 "Hybrid GP Management"](../codeunit/4016.md) (2 calls: `HandleGPOnReplicationRunCompleted → CanHandleNotification`, `HandleInitializationOfGPSynchronization → SetUpgradePendingOnReplicationRunCompleted`)
- [Codeunit 46862 "BC14 Migration Orchestrator"](../codeunit/46862.md) (2 calls: `HandleBC14OnReplicationRunCompleted → CanHandleNotification`, `HandleInitializationOfBC14Synchronization → SetUpgradePendingOnReplicationRunCompleted`)
- [Codeunit 40010 "Cloud Mig. Upgrade"](../codeunit/40010.md) (1 call: `OnUpgradePerCompany → SendCompletedCloudMigrationTelemetry`)
- [Codeunit 40015 "Data Lake Migration Cleanup"](../codeunit/40015.md) (1 call: `OnRun → DisableDataLakeMigration`)
- [Codeunit 40018 "Fix Data OnRun Completed"](../codeunit/40018.md) (1 call: `OnRun → RepairCompanionTableRecordConsistency`)
- [Codeunit 40023 "Record Link Migration Warning"](../codeunit/40023.md) (1 call: `CheckWarning → RecordLinkBufferBlocked`)
- [Codeunit 40034 "Custom Migration Provider"](../codeunit/40034.md) (1 call: `HandleOnOpenNewUI → IsCustomMigrationEnabled`)
- [Codeunit 40126 "Start Data Upgrade"](../codeunit/40126.md) (1 call: `OnRun → RunDataUpgrade`)
- [Codeunit 4035 "Wizard Integration"](../codeunit/4035.md) (1 call: `ScheduleGPHistoricalSnapshotMigration → GetJobQueueCategory`)
- [Codeunit 4037 "Helper Functions"](../codeunit/4037.md) (1 call: `RaiseNotificationForUnpostedJournals → GetLastReplicationSummary`)
- [Codeunit 46851 "BC14 Migration Setup"](../codeunit/46851.md) (1 call: `InsertPerCompanyMapping → CreateReplicationMapping`)
- [Codeunit 47005 "SL Wizard Integration"](../codeunit/47005.md) (1 call: `ScheduleSLHistoricalSnapshotMigration → GetJobQueueCategory`)
- [Page 4002 "Hybrid Product Types"](../page/4002.md) (1 call: `OnOpenPage → OnGetHybridProductType`)
- [Page 40020 "Cloud Migration Companies API"](../page/40020.md) (1 call: `CreateCompaniesMarkedForReplication → CreateCompanies`)
- [Page 40022 "Cloud Mig Table Mapping API"](../page/40022.md) (1 call: `RestoreDefaults → RestoreDefaultMigrationTableMappings`)
- [Page 40024 "Cloud Mig Product Type API"](../page/40024.md) (1 call: `OnOpenPage → OnGetHybridProductType`)
- [Page 40025 "Cloud Migration ADL Setup"](../page/40025.md) (1 call: `OnOpenPage → CanSetupAdlMigration`)
- [Page 40027 "Hybrid DA Approval"](../page/40027.md) (1 call: `OnOpenPage → GetOrInsertDelegatedAdminApprovalRecord`)
- [Page 40034 "Migration Table Overview"](../page/40034.md) (1 call: `GetShowRecordCounts → IsCustomMigrationEnabled`)
- [Page 40038 "Pause Cloud Migration"](../page/40038.md) (1 call: `DisableCloudMigration → DisableMigration`)
- [Page 4006 "Intelligent Cloud Details"](../page/4006.md) (1 call: `GetShowRecordCounts → IsCustomMigrationEnabled`)
- [Page 4007 "Intelligent Cloud Ready"](../page/4007.md) (1 call: `OnOpenPage → CanSetupAdlMigration`)
- [Page 4017 "Intelligent Cloud Update"](../page/4017.md) (1 call: `OnInit → IsCloudMigrationUISupported`)
- [Page 4018 "Hybrid Companies Management"](../page/4018.md) (1 call: `VerifyCompanySelection → CheckMigratedDataSize`)
- [Page 4022 "Migration User Mapping"](../page/4022.md) (1 call: `OnOpenPage → SendRecordLinkMigrationNotification`)
- [Table 4001 "Hybrid Replication Summary"](../table/4001.md) (1 call: `CreateInProgressRecord → GetChosenProductName`)

## Recent changes

- 2026-07-23 [#9200 Cloud Migration bug fixes (BC14 reimplementation, custom mapping, OnPrem dev companies)](../../changes/bcapps/9200.md) (main, BC30, fix)

## Across versions

- Present in: BC29-30
- Changed (declaration) in: none

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: "Hybrid Cloud Management")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
