Codeunit 2503 "Extension Operation Impl"
System Application · System.Apps
Across versions
- BC23-27present
- BC283 procedures added
- BC29unchanged
- BC301 procedures added
Neighbourhood 8 connected objects and pages
System Application · System.Apps · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
| SingleInstance | false |
| Permissions | tabledata Media = r, tabledata “NAV App Setting” = rm, tabledata “NAV App Tenant Operation” = r, tabledata “Published Application” = r |
Procedures
DeployExtension(AppId: Guid; lcid: Integer; IsUIEnabled: Boolean; PreviewKey: Text)UploadExtension(PackageInStream: InStream; lcid: Integer)DeployAndUploadExtension(PackageInStream: InStream; lcid: Integer; DeployTo: Enum "Extension Deploy To"; SyncMode: Enum "Extension Sync Mode")UnpublishExtension(PackageID: Guid): BooleanUnpublishUninstalledPerTenantExtension(PackageID: Guid)GetExtensionSource(PackageId: Guid; var ExtensionSourceTempBlob: Codeunit "Temp Blob"; var CleanFileName: Text): BooleanDownloadExtensionSource(PackageId: Guid): BooleanDownloadDeploymentStatusDetails(OperationId: Guid)RefreshStatus(OperationID: Guid)ConfigureExtensionHttpClientRequestsAllowance(PackageId: Text; AreHttpClientRqstsAllowed: Boolean): BooleanGetAllExtensionDeploymentStatusEntries(var TempExtensionDeploymentStatus: Record "Extension Deployment Status" temporary)GetDeploymentDetailedStatusMessageAsStream(OperationId: Guid; OutStream: OutStream)GetDeploymentDetailedStatusMessage(OperationId: Guid): TextGetDeployOperationInfo(OperationId: Guid; var Version: Text; var Schedule: Text; var Publisher: Text; var AppName: Text; Description: Text)GetDeployOperationInfo(OperationId: Guid; var Version: Text; var Publisher: Text; var AppName: Text; var AppId: Guid)GetDeployOperationAppId(OperationId: Guid): GuidGetDeployOperationAppName(OperationId: Guid): TextGetDeployOperationAppPublisher(OperationId: Guid): TextGetDeployOperationAppVersion(OperationId: Guid): TextGetDeployOperationSchedule(OperationId: Guid): TextGetDeployOperationJobId(OperationId: Guid): TextGetLatestVersionPackageIdByAppId(AppId: Guid): GuidGetCurrentlyInstalledVersionPackageIdByAppId(AppId: Guid): GuidGetSpecificVersionPackageIdByAppId(AppId: Guid; Name: Text; VersionMajor: Integer; VersionMinor: Integer; VersionBuild: Integer; VersionRevision: Integer): GuidGetExtensionLogo(AppId: Guid; var Logo: Codeunit "Temp Blob")GetAppName(AppId: Guid): TextHandleOrphanedDataNotification(Notif: Notification)+ BC28MarkOrphanedDataAsReviewed(Notif: Notification)+ BC28MarkAllOrphanedExtensionDataAsReviewed()+ BC28 (internal)GetAppName(AppId: Guid; OperationId: Guid): Text(internal)
Plus 3 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 4100 “Temp Blob” (5 calls:
DownloadDeploymentStatusDetails → CreateInStream,DownloadDeploymentStatusDetails → CreateOutStream,DownloadExtensionSource → CreateInStream, …) - Codeunit 2500 “Extension Installation Impl” (3 calls:
CheckPermissions → CheckPermissions,GetExtensionSource → GetVersionDisplayString,UnpublishExtension → IsInstalledByPackageId) - Codeunit 2501 “Extension Marketplace” (1 call:
DeployExtension → RunSetupForExtension) - Page 2514 “Delete Orphaned Extension Data” (1 call:
HandleOrphanedDataNotification → (object))
Called by
- Codeunit 2504 “Extension Management” (16 calls:
ConfigureExtensionHttpClientRequestsAllowance → ConfigureExtensionHttpClientRequestsAllowance,DeployExtension → DeployExtension,DownloadExtensionSource → DownloadExtensionSource, …) - Codeunit 2501 “Extension Marketplace” (2 calls:
InstallMarketplaceExtension → DeployExtension,InstallMarketplaceExtension → GetLatestVersionPackageIdByAppId) - Page 2505 “Extn. Installation Progress” (2 calls:
NeedToWait → RefreshStatus,OnQueryClosePage → RefreshStatus) - Page 2508 “Extension Deployment Status” (2 calls:
OnAfterGetRecord → GetDeployOperationInfo,OnAfterGetRecord → RefreshStatus) - Page 2509 “Extn Deployment Status Detail” (2 calls:
OnAfterGetCurrRecord → GetDeployOperationInfo,OnAfterGetCurrRecord → RefreshStatus)
Recent changes
- 2026-09-07 #11065 Open installation status after AppSource install failure (main, BC30, feature)
- 2026-07-23 #9569 Enforce permissions when reviewing orphaned extension data (main, BC30, fix)
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: "Extension Operation Impl"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.