---
id: object/codeunit/104000
type: object
title: Codeunit 104000 "Upgrade - BaseApp"
summary: Codeunit 104000 "Upgrade - BaseApp" in Base Application (Microsoft.Upgrade). 7 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC24-30.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "30"
  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: 9130cc24ecf76cddf76d79e5a78233015daa1088425be3bbb9194343fa97bfae
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/OtherCapabilities/Upgrade/UpgradeBaseApp.Codeunit.al
    title: src/Layers/W1/BaseApp/OtherCapabilities/Upgrade/UpgradeBaseApp.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/at
    - localization/be
    - localization/ch
    - localization/it
    - localization/nl
    - localization/no
    - localization/ru
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/12307
    - change/bcapps/10717
    - change/bcapps/10700
    - change/bcapps/10528
    - change/bcapps/9578
    - change/bcapps/8905
object_type: codeunit
object_id: 104000
name: Upgrade - BaseApp
namespace: Microsoft.Upgrade
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
source_major: "29"
obsolete: null
countries:
  - at
  - be
  - ch
  - it
  - nl
  - "no"
  - ru
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 162
  events: 1
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 30
  called_by: 3
  implements: 0
---

# Codeunit 104000 "Upgrade - BaseApp"

> Codeunit 104000 "Upgrade - BaseApp" in Base Application (Microsoft.Upgrade). 7 public procedures, 1 events. Present since at least BC23, still in BC30, changed in BC24-30.

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

## Properties

| Property | Value |
|---|---|
| Subtype | Upgrade |
| Permissions | TableData "User Group Plan" = rimd, TableData "Cust. Ledger Entry" = rm, TableData "Employee Ledger Entry" = rm, Tabledata "ABC Analysis Setup" = ri |

## Events published

- `OnUpgradeDimensionSetEntry(var IsHandled: Boolean)` (integration)

## Procedures

- `UpdateSEPACAMT05300108DataExchDefLabels()`
- `UpgradeSEPACAMT05300108()` (internal)
- `UpgradeWordTemplateTables()` (internal)
- `UpgradeItemPostingGroups()`
- `UpgradePurchaseCreditMemoVendorCrMemoNo()` (internal)
- `UpgradeSalesCreditMemoReasonCode()`
- `UpgradeOnlineMap()`

Plus 154 local procedures.

## Triggers

OnCheckPreconditionsPerDatabase, OnCheckPreconditionsPerCompany, OnUpgradePerDatabase, OnUpgradePerCompany

## 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 9999 "Upgrade Tag"](../codeunit/9999.md) (248 calls: `AddPowerBIWorkspaces → HasUpgradeTag`, `AddPowerBIWorkspaces → SetUpgradeTag`, `CheckLedgerEntriesMoveFromRecordIDToSystemId → HasUpgradeTag`, …)
- [Codeunit 9998 "Upgrade Tag Definitions"](../codeunit/9998.md) (129 calls: `AddPowerBIWorkspaces → GetPowerBIWorkspacesUpgradeTag`, `CheckLedgerEntriesMoveFromRecordIDToSystemId → GetCheckLedgerEntriesMoveFromRecordIDToSystemIdUpgradeTag`, `ClearTemporaryTables → GetClearTemporaryTablesUpgradeTag`, …)
- [Codeunit 9994 "API Data Upgrade"](../codeunit/9994.md) (11 calls: `UpgradeAPIs → GetDisableAPIDataUpgradesTag`, `UpgradePurchaseOrderShortcutDimension → UpgradePurchaseOrderShortcutDimension`, `UpgradePurchInvoiceShortcutDimension → UpgradePurchInvoiceShortcutDimension`, …)
- [Codeunit 2 "Company-Initialize"](../codeunit/2.md) (6 calls: `UpgradeBankExportImportSetup → GetSEPACT09Code`, `UpgradeBankExportImportSetup → GetSEPACT09Name`, `UpgradeBankExportImportSetup → GetSEPADD08Code`, …)
- [Codeunit 457 "Environment Information"](../codeunit/457.md) (5 calls: `UpdateAllJobsResourcePrices → IsSaaS`, `UpdatePriceListLineStatus → IsSaaS`, `UpgradeCreditTransferIBAN → IsSaaS`, …)
- [Codeunit 6060 "Hybrid Deployment"](../codeunit/6060.md) (5 calls: `OnCheckPreconditionsPerCompany → VerifyCanStartUpgrade`, `OnCheckPreconditionsPerDatabase → VerifyCanStartUpgrade`, `OnUpgradePerCompany → VerifyCanStartUpgrade`, …)
- [Codeunit 1901 "Report Selection Mgt."](../codeunit/1901.md) (3 calls: `UpgradeJobReportSelection → InitReportSelectionJob`, `UpgradeJobTaskReportSelection → InitReportSelection`, `UpgradeRemittanceAdviceReportSelection → InitReportSelection`)
- [Codeunit 4100 "Temp Blob"](../codeunit/4100.md) (3 calls: `ChangeEncodingToUTF8 → CreateInStream`, `ChangeEncodingToUTF8 → FromRecordRef`, `ChangeEncodingToUTF8 → HasValue`)
- [Codeunit 8617 "Config. Validate Management"](../codeunit/8617.md) (3 calls: `UpgradeCustomerTemplates → EvaluateValue`, `UpgradeItemTemplates → EvaluateValue`, `UpgradeVendorTemplates → EvaluateValue`)
- [Codeunit 8821 "AAD Application Setup"](../codeunit/8821.md) (3 calls: `CreateDefaultAADApplication → CreateDynamics365BusinessCentralforVirtualEntitiesAAdApplication`, `CreateExpenseAgentAADApplications → CreateExpenseAgentAADApplications`, `CreatePowerPagesAAdApplications → CreatePowerPagesAAdApplications`)
- [Codeunit 1293 "Isolated Storage Management"](../codeunit/1293.md) (2 calls: `UpgradePostCodeServiceKey → Delete`, `UpgradePostCodeServiceKey → Get`)
- [Codeunit 1990 "Guided Experience"](../codeunit/1990.md) (2 calls: `UpgradeRemoveSmartListGuidedExperience → Exists`, `UpgradeRemoveSmartListGuidedExperience → Remove`)
- [Codeunit 5497 "Graph Mgt - Purch Order Buffer"](../codeunit/5497.md) (2 calls: `UpgradeInvoicesCreatedFromOrders → DeleteOrphanedRecords`, `UpgradePurchaseOrderEntityBuffer → InsertOrModifyFromPurchaseHeader`)
- [Codeunit 7009 "CopyFromToPriceListLine"](../codeunit/7009.md) (2 calls: `InsertPriceListLine → InitLineNo`, `InsertPriceListLine → SetGenerateHeader`)
- [Codeunit 7204 "CDS Setup Defaults"](../codeunit/7204.md) (2 calls: `UpgradeAddExtraIntegrationFieldMappings → AddExtraIntegrationFieldMappings`, `UpgradeOptionMapping → ResetOptionMappingConfiguration`)
- [Codeunit 8703 "Feature Telemetry"](../codeunit/8703.md) (2 calls: `SendCloudMigrationUsageTelemetry → LogUptake`, `SendCloudMigrationUsageTelemetry → LogUsage`)
- [Codeunit 9750 "Web Service Management"](../codeunit/9750.md) (2 calls: `CreateExcelTemplateWebService → CreateTenantWebService`, `CreateWorkflowWebhookWebServices → CreateTenantWebService`)
- [Codeunit 1541 "Workflow Webhook Events"](../codeunit/1541.md) (1 call: `UpdateWorkflowTableRelations → CleanupOldIntegrationIdsTableRelation`)
- [Codeunit 18 "Financial Report Mgt."](../codeunit/18.md) (1 call: `UpgradeAccountSchedulesToFinancialReports → Initialize`)
- [Codeunit 367 "CheckManagement"](../codeunit/367.md) (1 call: `CheckLedgerEntriesMoveFromRecordIDToSystemId → GenJournalLineGetSystemIdFromRecordId`)
- [Codeunit 5334 "CRM Setup Defaults"](../codeunit/5334.md) (1 call: `UpgradeIntegrationTableMappingFilterForOpportunities → GetTableFilterFromView`)
- [Codeunit 5477 "Sales Invoice Aggregator"](../codeunit/5477.md) (1 call: `UpgradeInvoicesCreatedFromOrders → FixInvoicesCreatedFromOrders`)
- [Codeunit 5496 "Graph Mgt - Sales Order Buffer"](../codeunit/5496.md) (1 call: `UpgradeInvoicesCreatedFromOrders → DeleteOrphanedRecords`)
- [Codeunit 5529 "Purch. Inv. Aggregator"](../codeunit/5529.md) (1 call: `UpgradeInvoicesCreatedFromOrders → FixInvoicesCreatedFromOrders`)
- [Codeunit 6319 "Power BI Workspace Mgt."](../codeunit/6319.md) (1 call: `AddPowerBIWorkspaces → GetMyWorkspaceLabel`)
- [Codeunit 7001 "Price Calculation Mgt."](../codeunit/7001.md) (1 call: `UseCustomLookupInPrices → FindActiveSubscriptions`)
- [Codeunit 7017 "Price List Management"](../codeunit/7017.md) (1 call: `InsertPriceListLine → FindDuplicatePrice`)
- [Codeunit 8390 "Financial Report Auditing"](../codeunit/8390.md) (1 call: `UpgradeFinancialReportAuditLogAddRetentionPolicy → AddRetentionPolicy`)
- [Codeunit 9179 "Application Area Mgmt. Facade"](../codeunit/9179.md) (1 call: `UpgradeInventorySetupAllowInvtAdjmt → IsFoundationEnabled`)
- [Codeunit 9987 "Word Template"](../codeunit/9987.md) (1 call: `UpgradeWordTemplateTables → AddTable`)

## Called by

- [Codeunit 5000 "BaseApp Install"](../codeunit/5000.md) (1 call: `AddWordTemplateTables → UpgradeWordTemplateTables`)
- [Codeunit 5308 "Contoso Data Exchange"](../codeunit/5308.md) (1 call: `UpdateSEPACAMT05300108DataExchDefLabels → UpdateSEPACAMT05300108DataExchDefLabels`)
- [Page 1200 "Bank Export/Import Setup"](../page/1200.md) (1 call: `UpgradeSEPACAMT05300108 → UpgradeSEPACAMT05300108`)

## Recent changes

- 2026-10-05 [#12307 Make UpgradeDefaultDimensions ParentId backfill set-based (via DataTransfer)](../../changes/bcapps/12307.md) (main, BC30, performance)
- 2026-09-25 [#10717 Enable amount formatting with currency symbols](../../changes/bcapps/10717.md) (main, BC30, feature)
- 2026-09-01 [#10700 29.x: PO matching API, E-Documents integration and receipt-on-invoice line tracking](../../changes/bcapps/10700.md) (releases/29.x, BC29, feature)
- 2026-08-31 [#10528 Track receipt on invoice per purchase order line](../../changes/bcapps/10528.md) (main, BC30, feature)
- 2026-08-11 [#9578 [E-Documents Core] - Enabling remittance advice export via E-Documents (payment journal + posted payments)](../../changes/bcapps/9578.md) (main, BC30, feature)
- 2026-07-17 [#8905 [Master] Different source reference on reservation entries created directly from Job Planning Line and via a warehouse pick.](../../changes/bcapps/8905.md) (main, BC30, fix)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-30

## Countries that replace it

[AT](../../localizations/at.md), [BE](../../localizations/be.md), [CH](../../localizations/ch.md), [IT](../../localizations/it.md), [NL](../../localizations/nl.md), [NO](../../localizations/no.md), [RU](../../localizations/ru.md)

## Deprecations

- procedure UpgradeDirectTransferPostingToEnum: guarded (#if not CLEAN29)

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