Codeunit 2501 "Extension Marketplace"
System Application · System.Apps
Across versions
- BC23-24present
- BC251 procedures changed, 1 procedures removed
- BC26-27unchanged
- BC281 procedures removed
- BC29-30unchanged
Neighbourhood 11 connected objects and pages
System Application · System.Apps · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
| Permissions | tabledata “Extension Pending Setup” = rimd, tabledata “Published Application” = r |
Events published
OnOverrideUrl(var Url: Text)(internal)
Event subscriptions
- InvokeExtensionInstallation subscribes to Codeunit “System Action Triggers” InvokeExtensionInstallation
Procedures
GetTelementryUrlFromData(JObject: DotNet JObject): TextMapMarketplaceIdToAppId(MarketplaceApplicationId: Text): GuidMakeMarketplaceTelemetryCallback(ResponseURL: Text; InstallationResult: Option UserNotAuthorized,DeploymentFailedDueToPackage,DeploymentFailed,Successful,UserCancel,UserTimeOut)InstallMarketplaceExtension(ApplicationId: Guid; ResponseURL: Text; lcid: Integer; PreviewKey: Text)InstallAppsourceExtension(MarketplaceApplicationId: Text; TelemetryURL: Text)InstallAppsourceExtension(AppId: Guid; TelemetryURL: Text)InstallAppsourceExtensionWithRefreshSession(MarketplaceApplicationID: Text; TelemetryURL: Text)InstallAppsourceExtensionWithRefreshSession(AppId: Guid; TelemetryURL: Text)InstallExtension(MarketplaceApplicationID: Text; ResponseURL: Text)IsMarketplaceEnabled(): BooleanInitializeHTTPRequest(URL: Text)RunSetupForExtension(AppId: Guid)RunPendingSetup()SetupForExtensionExists(AppId: Guid): BooleanGetMessageType(JObject: DotNet JObject): TextGetApplicationIdFromData(JObject: DotNet JObject): Text
Plus 10 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 2500 “Extension Installation Impl” (4 calls:
InstallApp → InstallExtensionWithConfirmDialog,InstallAppsourceExtensionWithRefreshSession → CheckPermissions,InstallAppsourceExtensionWithRefreshSession → IsInstalledByAppId, …) - Codeunit 1990 “Guided Experience” (3 calls:
RunSetupForExtension → RunExtensionSetup,RunSetupForExtension → SetupForExtensionExists,SetupForExtensionExists → SetupForExtensionExists) - Codeunit 2503 “Extension Operation Impl” (2 calls:
InstallMarketplaceExtension → DeployExtension,InstallMarketplaceExtension → GetLatestVersionPackageIdByAppId) - Codeunit 2200 “Azure Key Vault” (1 call:
IsMarketplaceEnabled → GetAzureKeyVaultSecret) - Codeunit 4100 “Temp Blob” (1 call:
TryMakeMarketplaceTelemetryCallback → CreateInStream) - Codeunit 457 “Environment Information” (1 call:
InitializeHTTPRequest → IsSaaS)
Called by
- Codeunit 2503 “Extension Operation Impl” (1 call:
DeployExtension → RunSetupForExtension) - Codeunit 2504 “Extension Management” (1 call:
InstallMarketplaceExtension → InstallAppsourceExtensionWithRefreshSession) - Page 2500 “Extension Management” (1 call:
DetermineEnvironmentConfigurations → IsMarketplaceEnabled) - Page 2503 “Extension Installation” (1 call:
OnOpenPage → InstallMarketplaceExtension) - Page 2512 “Extension Setup Launcher” (1 call:
OnOpenPage → RunPendingSetup) - Page 2514 “Delete Orphaned Extension Data” (1 call:
DetermineEnvironmentConfigurations → IsMarketplaceEnabled)
Recent changes
- 2026-10-02 #12194 Harden web request helpers: opt-in default credentials (main, BC30, breaking)
- 2026-09-07 #11065 Open installation status after AppSource install failure (main, BC30, feature)
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 Marketplace"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.