---
id: object/codeunit/6060
type: object
title: Codeunit 6060 "Hybrid Deployment"
summary: Codeunit 6060 "Hybrid Deployment" in Base Application (System.Environment). 21 public procedures, 24 events, 1 event subscribers. Present since at least BC23, still in BC30, changed in BC27-28.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "28"
  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: 9305907e7ccbec7ad5267085923798ec79bf92563bf0e15d435f7f15bc0c2477
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/HybridDeployment.Codeunit.al
    title: src/Layers/W1/BaseApp/HybridDeployment.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 6060
name: Hybrid Deployment
namespace: System.Environment
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 66
  events: 24
  subscribers: 1
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 39
  calls: 3
  called_by: 20
  implements: 0
---

# Codeunit 6060 "Hybrid Deployment"

> Codeunit 6060 "Hybrid Deployment" in Base Application (System.Environment). 21 public procedures, 24 events, 1 event subscribers. Present since at least BC23, still in BC30, changed in BC27-28.

Base Application · System.Environment · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/HybridDeployment.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Permissions | TableData "Hybrid Deployment Setup" = rimd, TableData "Intelligent Cloud" = rimd, TableData "Intelligent Cloud Status" = rimd, TableData "Webhook Subscription" = rimd |

## Events published

- `OnCreateIntegrationRuntime(var InstanceId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleCreateIntegrationRuntime, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleCreateIntegrationRuntime
- `OnDisableDataLakeMigration(var InstanceId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleOnDisableDataLakeMigration, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleDisableDataLakeMigration
- `OnDisableReplication(var InstanceId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleDisableReplication, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleDisableReplication
- `OnAfterDisableReplication(var InstanceId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleOnAfterDisableReplication
- `OnBeforeEnableReplication(ProductId: Text; var NotificationUrl: Text; var SubscriptionId: Text[150]; var ClientState: Text[50]; var ServiceNotificationUrl: Text; var ServiceSubscriptionId: Text[150]; var ServiceClientState: Text[50])` (integration)
  - subscribers: [Codeunit 4001 "Hybrid Cloud Management"](../codeunit/4001.md) CreateWebhookSubscriptionOnEnableReplication
- `OnEnableReplication(OnPremiseConnectionString: Text; DatabaseType: Text; IntegrationRuntimeName: Text; NotificationUrl: Text; ClientState: Text; SubscriptionId: Text; ServiceNotificationUrl: Text; ServiceClientState: Text; ServiceSubscriptionId: Text; var InstanceId: Text; SourceCompaniesTableName: Text; SetupMappingsTableName: Text; ReplicationMappingsTableName: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleEnableReplication, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleEnableReplication
- `OnGetErrorMessage(ErrorCode: Text; var Message: Text)` (integration)
  - subscribers: [Codeunit 4011 "Hybrid Message Management"](../codeunit/4011.md) ResolveMessageCodeOnGetErrorMessage
- `OnGetIntegrationRuntimeKeys(var InstanceId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleGetIntegrationKey, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleGetIntegrationRuntimeKeys
- `OnGetReplicationRunStatus(var InstanceId: Text; RunId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleGetReplicationRunStatus, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleGetReplicationRunStatus
- `OnGetRequestStatus(InstanceId: Text; var JsonOutput: Text; var Status: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleGetRequestStatus, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleGetRequestStatus
- `OnGetVersionInformation(var InstanceId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleOnGetVersionInformation, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleGetVersionInformation
- `OnInitialize(SourceProductId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleInitialize, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleInitialize
- `OnInitiateDataLakeMigration(var InstanceId: Text; StorageAccountName: Text; StorageAccountKey: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleOnInitiateDataLakeMigration, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleInitiateDataLakeMigration
- `OnPrepareTablesForReplication()` (integration)
  - subscribers: [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandlePrepareTables
- `OnRegenerateIntegrationRuntimeKeys(var InstanceId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleRegenerateIntegrationKey, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleRegenerateIntegrationRuntimeKeys
- `OnBeforeRunReplication()` (integration)
  - subscribers: [Codeunit 4001 "Hybrid Cloud Management"](../codeunit/4001.md) SaveTenantMediaCountOnBeforeRunReplication
- `OnRunReplication(var InstanceId: Text; ReplicationType: Integer)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleRunReplicationNow, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleRunReplication
- `OnRunUpgrade(var InstanceId: Text)` (integration)
  - subscribers: [Codeunit 40035 "OnPrem Migration Handler"](../codeunit/40035.md) HandleOnRunUpgrade, [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleRunUpgrade
- `OnSetReplicationSchedule(ReplicationFrequency: Text; DaysToRun: Text; TimeToRun: Time; Activate: Boolean; var InstanceId: Text)` (integration)
  - subscribers: [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleSetReplicationSchedule
- `OnCanStartUpgrade(CompanyName: Text)` (integration)
  - subscribers: [Codeunit 4001 "Hybrid Cloud Management"](../codeunit/4001.md) DisableCloudMigrationUnderUpgrade
- `OnStartDataUpgrade()` (integration)
  - subscribers: [Codeunit 6061 "Hybrid Deployment Handler"](../codeunit/6061.md) HandleStartDataUpgrade
- `OnHandleVerifyCanStartUpgrade(var CanStartUpgrade: Boolean; var Handled: Boolean)` (integration)
  - subscribers: [Codeunit 4026 "W1 Management"](../codeunit/4026.md) HandleVerifyCanStartUpgrade
- `OnSkipMinorAndMajorVersionCheck(var SkipVersionCheck: Boolean)` (integration)
- `OnBeforeResetUsersToIntelligentCloudPermissions(var Handled: Boolean)` (integration)
  - subscribers: [Codeunit 4001 "Hybrid Cloud Management"](../codeunit/4001.md) HandleBeforeResetUsersToIntelligentCloudPermissions, [Codeunit 4016 "Hybrid GP Management"](../codeunit/4016.md) HandleBeforeResetUsersToIntelligentCloudPermissions, [Codeunit 46862 "BC14 Migration Orchestrator"](../codeunit/46862.md) HandleBeforeResetUsersToIntelligentCloudPermissions, [Codeunit 47013 "SL Hybrid Management"](../codeunit/47013.md) HandleBeforeResetUsersToIntelligentCloudPermissions

## Event subscriptions

- HandleCompanyInit subscribes to Codeunit "Company-Initialize" OnCompanyInitialize

## Procedures

- `Initialize(SourceProductId: Text)`
- `CreateIntegrationRuntime(var RuntimeName: Text; var PrimaryKey: Text)`
- `DisableReplication()`
- `DisableDataLakeMigration()`
- `EnableReplication(OnPremConnectionString: Text; DatabaseConfiguration: Text; IntegrationRuntimeName: Text)`
- `EnableReplication(OnPremConnectionString: Text; DatabaseConfiguration: Text; IntegrationRuntimeName: Text; SourceCompaniesTableName: Text; SetupMappingsTableName: Text; ReplicationMappingsTableName: Text)`
- `GetIntegrationRuntimeKeys(var PrimaryKey: Text; var SecondaryKey: Text)`
- `GetReplicationRunStatus(RunId: Text; var Status: Text; var Errors: Text)`
- `GetRequestStatus(RequestTrackingId: Text; var JsonOutput: Text): Text`
- `GetVersionInformation(var DeployedVersion: Text; var LatestVersion: Text)`
- `InitiateDataLakeMigration(var RunId: Text; StorageAccountName: Text; StorageAccountKey: Text)`
- `PrepareTablesForReplication()`
- `RegenerateIntegrationRuntimeKeys(var PrimaryKey: Text; var SecondaryKey: Text)`
- `ResetCloudData()`
- `RunReplication(var RunId: Text; ReplicationType: Integer)`
- `StartDataUpgrade()`
- `RunUpgrade()`
- `SetReplicationSchedule(ReplicationFrequency: Text; DaysToRun: Text; TimeToRun: Time; Activate: Boolean)`
- `SanitizeCompanyBeforeUpgrade()`
- `SanitizeFields(NameOfCompany: Text; TableID: Integer)`
- `VerifyCanStartUpgrade(CompanyName: Text): Boolean` (internal)

Plus 20 local procedures.

## Triggers

OnRun

## 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 5459 "JSON Management"](../codeunit/5459.md) (20 calls: `CreateIntegrationRuntime → GetStringPropertyValueByName`, `CreateIntegrationRuntime → InitializeObject`, `GetIntegrationRuntimeKeys → GetStringPropertyValueByName`, …)
- [Codeunit 9999 "Upgrade Tag"](../codeunit/9999.md) (2 calls: `SanitizeCompanyBeforeUpgrade → HasUpgradeTag`, `SanitizeCompanyBeforeUpgrade → SetUpgradeTag`)
- [Codeunit 9998 "Upgrade Tag Definitions"](../codeunit/9998.md) (1 call: `SanitizeCompanyBeforeUpgrade → SanitizeCloudMigratedDataUpgradeTag`)

## Called by

- [Codeunit 4001 "Hybrid Cloud Management"](../codeunit/4001.md) (15 calls: `DisableDataLakeMigration → DisableDataLakeMigration`, `DisableDataLakeMigration → Initialize`, `HandleShowIRInstructionsStep → CreateIntegrationRuntime`, …)
- [Codeunit 104000 "Upgrade - BaseApp"](../codeunit/104000.md) (5 calls: `OnCheckPreconditionsPerCompany → VerifyCanStartUpgrade`, `OnCheckPreconditionsPerDatabase → VerifyCanStartUpgrade`, `OnUpgradePerCompany → VerifyCanStartUpgrade`, …)
- [Codeunit 104059 "Serv. Upgrade BaseApp"](../codeunit/104059.md) (3 calls: `OnCheckPreconditionsPerCompany → VerifyCanStartUpgrade`, `OnCheckPreconditionsPerDatabase → VerifyCanStartUpgrade`, `OnUpgradePerCompany → VerifyCanStartUpgrade`)
- [Codeunit 4014 "Notification Handler"](../codeunit/4014.md) (2 calls: `TryParseErrors → GetReplicationRunStatus`, `TryParseErrors → Initialize`)
- [Page 4017 "Intelligent Cloud Update"](../page/4017.md) (2 calls: `OnInit → GetVersionInformation`, `OnInit → Initialize`)
- [Table 4003 "Intelligent Cloud Setup"](../table/4003.md) (2 calls: `SetReplicationSchedule → Initialize`, `SetReplicationSchedule → SetReplicationSchedule`)
- [Codeunit 104010 "Upg Set Country App Areas"](../codeunit/104010.md) (1 call: `OnUpgradePerCompany → VerifyCanStartUpgrade`)
- [Codeunit 104030 "Upgrade Plan Permissions"](../codeunit/104030.md) (1 call: `RunUpgrade → VerifyCanStartUpgrade`)
- [Codeunit 104040 "Upgrade Profiles V2"](../codeunit/104040.md) (1 call: `OnUpgradePerCompany → VerifyCanStartUpgrade`)
- [Codeunit 104042 "Upgrade Permission Sets"](../codeunit/104042.md) (1 call: `RunUpgrade → VerifyCanStartUpgrade`)
- [Codeunit 104046 "Upgrade Monitored Field"](../codeunit/104046.md) (1 call: `UpgradeNotificationCount → VerifyCanStartUpgrade`)
- [Codeunit 104050 "Upg Load Named Forward Links"](../codeunit/104050.md) (1 call: `OnUpgradePerCompany → VerifyCanStartUpgrade`)
- [Codeunit 104060 "Upgrade App ID Permissions"](../codeunit/104060.md) (1 call: `RunUpgrade → VerifyCanStartUpgrade`)
- [Codeunit 104061 "Upgrade User Groups"](../codeunit/104061.md) (1 call: `OnUpgradePerDatabase → VerifyCanStartUpgrade`)
- [Codeunit 104070 "Upgrade Refs To Rem. Tables"](../codeunit/104070.md) (1 call: `OnUpgradePerCompany → VerifyCanStartUpgrade`)
- [Codeunit 3996 "Reten. Pol. Upgrade - BaseApp"](../codeunit/3996.md) (1 call: `OnUpgradePerCompany → VerifyCanStartUpgrade`)
- [Codeunit 4029 "W1 Company Handler"](../codeunit/4029.md) (1 call: `OnRun → SanitizeCompanyBeforeUpgrade`)
- [Page 4003 "Intelligent Cloud Management"](../page/4003.md) (1 call: `OnOpenPage → Initialize`)
- [Page 40063 "Cloud Migration Management"](../page/40063.md) (1 call: `OnOpenPage → Initialize`)
- [Page 4020 "Post Migration Checklist"](../page/4020.md) (1 call: `OnOpenPage → Initialize`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC27-28

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