Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ codeunit 20353 "Connectivity Apps Logo Mgt."

var
CatalogApiUrlLbl: Label 'https://catalogapi.azure.com/products/PUBID.%1|AID.%2|PAPPID.%3?market=US&api-version=2023-05-01-preview&language=en', Locked = true;
IncorrectAppSourceUrlLbl: Label '%1 is not a correct AppSource URL.', Locked = true, Comment = '%1 = App source URL';
IncorrectAppSourceUrlLbl: Label '%1 is not a correct Marketplace URL.', Locked = true, Comment = '%1 = App source URL';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$\textbf{🟡\ Medium\ Severity\ —\ Telemetry}$

IncorrectAppSourceUrlLbl feeds Session.LogMessage('0000I4I', ...) in ConnectivityAppsLogoMgt.Codeunit.al. The label's locked text changed from '%1 is not a correct AppSource URL.' to '%1 is not a correct Marketplace URL.', altering the payload of an existing telemetry event. This can break saved KQL queries or dashboards that match on the old message text. Keep the user-facing rename in UI-visible strings, but leave locked telemetry message text stable (or introduce telemetry-only text changes deliberately, coordinated with telemetry consumers) rather than changing it incidentally as part of a UI rebrand.

👍 useful · ❤️ especially valuable · 👎 wrong - reply with why · AL review agent v1.32.4

LogoDownloadFailedLbl: Label 'Logo download failed from Catalog API for PUBID.%1|AID.%2|PAPPID.%3', Locked = true, Comment = '%1 = Publisher ID, %2 = App ID, %3 = Plan App ID';
TelemetryCategoryLbl: Label 'Connectivity Apps', Locked = true;
CatalogApiKeyVaultSecretNameLbl: Label 'MarketplaceCatalogApi-Key', Locked = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ page 20352 "Banking App"
DeleteAllowed = false;
Extensible = false;
AboutTitle = 'Banking app details';
AboutText = 'This page provides details about the app. The description outlines its purpose, and you can visit AppSource to learn more. These apps may have a cost of usage. You will find that information on AppSource or on the app publisher''s web site linked to on this page.';
AboutText = 'This page provides details about the app. The description outlines its purpose, and you can visit Marketplace to learn more. These apps may have a cost of usage. You will find that information on Marketplace or on the app publisher''s web site linked to on this page.';

layout
{
Expand Down Expand Up @@ -46,9 +46,9 @@ page 20352 "Banking App"
field("AppSourceURL"; AppSourceURLLbl)
{
ApplicationArea = All;
Caption = 'AppSource URL';
Caption = 'Marketplace URL';
ShowCaption = false;
ToolTip = 'Specifies the URL for the app on AppSource.';
ToolTip = 'Specifies the URL for the app on Marketplace.';

trigger OnDrillDown()
begin
Expand Down Expand Up @@ -123,6 +123,6 @@ page 20352 "Banking App"
end;

var
AppSourceURLLbl: Label 'View in AppSource';
AppSourceURLLbl: Label 'View in Marketplace';
ProvideSupportURLLbl: Label 'View supported banks';
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ page 20351 "Connectivity App"
field("AppSourceURL"; AppSourceURLLbl)
{
ApplicationArea = All;
Caption = 'AppSource URL';
Caption = 'Marketplace URL';
ShowCaption = false;
ToolTip = 'Specifies the URL for the app on AppSource.';
ToolTip = 'Specifies the URL for the app on Marketplace.';

trigger OnDrillDown()
begin
Expand Down Expand Up @@ -125,6 +125,6 @@ page 20351 "Connectivity App"
end;

var
AppSourceURLLbl: Label 'View in AppSource';
AppSourceURLLbl: Label 'View in Marketplace';
ProvideSupportURLLbl: Label 'Support';
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ table 20352 "Connectivity App Logo"
}
field(3; "AppSource URL"; Text[2048])
{
Caption = 'AppSource URL';
Caption = 'Marketplace URL';
}
field(4; "Expiry Date"; DateTime)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,8 @@ page 6103 "E-Document Services"
action(OpenAppSourceInstallableServices)
{
ApplicationArea = Basic, Suite;
Caption = 'Install E-Document integrations from AppSource';
Tooltip = 'Open AppSource to install services.';
Caption = 'Install E-Document integrations from Marketplace';
Tooltip = 'Open Marketplace to install services.';
Image = Insert;

trigger OnAction()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ page 6613 "FS Connection Setup Wizard"
}
group(Control25)
{
InstructionalText = 'Use the link below to go to AppSource and get the the Business Central Virtual Table app, so you can install it in your Dataverse environment. To refresh status after you install, click back and next.';
InstructionalText = 'Use the link below to go to Marketplace and get the the Business Central Virtual Table app, so you can install it in your Dataverse environment. To refresh the status after you install, click Back and Next.';
ShowCaption = false;

field("Enable Invt. Availability"; Rec."Enable Invt. Availability")
Expand All @@ -243,7 +243,7 @@ page 6613 "FS Connection Setup Wizard"
Editable = false;
ShowCaption = false;
Caption = ' ';
ToolTip = 'Get the Business Central Virtual Table app from Microsoft AppSource.';
ToolTip = 'Get the Business Central Virtual Table app from Microsoft Marketplace.';

trigger OnDrillDown()
begin
Expand Down Expand Up @@ -692,4 +692,3 @@ page 6613 "FS Connection Setup Wizard"
EditableProjectSettings := Rec."Integration Type" = Rec."Integration Type"::Projects;
end;
}

Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,5 @@ codeunit 20422 "Qlty. Demo Data Mgmt."
end;

var
NotInstalledMsg: Label 'The "Quality Management Contoso Coffee Demo Dataset" app is not installed.\\To explore Quality Management with demo data, please install this app from Microsoft AppSource.';
NotInstalledMsg: Label 'The "Quality Management Contoso Coffee Demo Dataset" app is not installed.\\To explore Quality Management with demo data, please install this app from Microsoft Marketplace.';
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ codeunit 4751 "Recommended Apps Impl."
CatalogApiUrlNotReachableErrLbl: Label 'Cannot add the recommended app with ID %1. The Marketplace Catalog API cannot be reached, and the HTTP status code is %2. Are you sure that the information about the app is correct?',
Comment = '%1 = App Id; %2 = Http StatusCode';
CatalogApiUrlLbl: Label 'https://catalogapi.azure.com/products/PUBID.%1|AID.%2|PAPPID.%3?market=US&api-version=2023-05-01-preview&language=en', Locked = true;
AppSourceURLNotFoundErrLbl: Label 'Cannot get the AppSource URL.';
AppSourceURLNotFoundErrLbl: Label 'Cannot get the Marketplace URL.';
CatalogApiKeyVaultSecretNameLbl: Label 'MarketplaceCatalogApi-Key', Locked = true;
CannotGetApiKeyFromKeyVaultErrLbl: Label 'Cannot retrieve the Marketplace Catalog API key from Azure Key Vault.', Locked = true;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ page 4751 "Recommended App Card"
Caption = 'Description';
MultiLine = true;
}
field("View on AppSource"; 'Link to AppSource')
field("View on AppSource"; 'Link to Marketplace')
{
ApplicationArea = All;
ToolTip = 'View app on Microsoft Business Central AppSource';
Caption = 'View on AppSource';
ToolTip = 'View app on Microsoft Marketplace';
Caption = 'View on Marketplace';

trigger OnDrillDown()
begin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ codeunit 139527 "Recommended Apps Tests"

var
Assert: Codeunit Assert;
MarketplaceURLNotFoundErr: Label 'Marketplace URL';
Comment thread
SBalslev marked this conversation as resolved.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$\textbf{🟡\ Medium\ Severity\ —\ Testing}$

The new shared label MarketplaceURLNotFoundErr: Label 'Marketplace URL'; used with Assert.ExpectedError(MarketplaceURLNotFoundErr) is too broad to pin this negative test to the specific 'not found' error it is meant to verify. Assert.ExpectedError matches on a substring of the actual raised error, so any other failure that happens to mention 'Marketplace URL' would also make this assertion pass, weakening the test's ability to detect the wrong error. Use the full expected error text (matching the production AppSourceURLNotFoundErrLbl wording, 'Cannot get the Marketplace URL.') or another uniquely identifying fragment instead of the generic two-word substring.

Suggested fix (apply manually — could not be anchored as a one-click suggestion):

        MarketplaceURLNotFoundErr: Label 'Cannot get the Marketplace URL.';

Knowledge:

👍 useful · ❤️ especially valuable · 👎 wrong - reply with why · AL review agent v1.32.4


[Test]
procedure TestInsertAppWhenURLAppInfoAreWrong()
Expand Down Expand Up @@ -190,7 +191,7 @@ codeunit 139527 "Recommended Apps Tests"
URL,
// URL is decoded
'https://appsource.microsoft.com/en-us/product/dynamics-365-business-central/PUBID.thetasystemslimited|AID.bc_excel_importer|PAPPID.24466323-aee9-4049-a66d-a1af24466323?tab=Overview',
'The AppSource URL is wrong.'
'The Marketplace URL is wrong.'
);
end;

Expand All @@ -210,7 +211,7 @@ codeunit 139527 "Recommended Apps Tests"
asserterror RecommendedApps.GetAppURL(CreateGuid());

// [THEN] Am error is thrown
Assert.ExpectedError('Cannot get the AppSource URL.');
Comment thread
SBalslev marked this conversation as resolved.
Assert.ExpectedError(MarketplaceURLNotFoundErr);
end;

local procedure InsertSingleApp(): Guid
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,7 @@ page 5330 "CRM Connection Setup"
Caption = 'Field Service Integration App';
Image = Setup;
Visible = SoftwareAsAService;
ToolTip = 'Go to Microsoft AppSource to get the Field Service Integration app. The app will let you integrate Dynamics 365 Field Service with Business Central.';
ToolTip = 'Go to Microsoft Marketplace to get the Field Service Integration app. The app will let you integrate Dynamics 365 Field Service with Business Central.';

trigger OnAction()
var
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ page 1817 "CRM Connection Setup Wizard"
}
group(Control25)
{
InstructionalText = 'Use the link below to go to AppSource and get the Field Service Integration app. After you install the app, go to Field Service Integration setup wizard to set up integration.';
InstructionalText = 'Use the link below to go to Marketplace and get the Field Service Integration app. After you install the app, go to Field Service Integration setup wizard to set up integration.';
ShowCaption = false;

field(InstallFieldServiceIntegrationApp; FieldServiceIntegrationAppInstallTxt)
Expand All @@ -232,7 +232,7 @@ page 1817 "CRM Connection Setup Wizard"
Editable = false;
ShowCaption = false;
Caption = ' ';
ToolTip = 'Get the Field Service Integration app from Microsoft AppSource.';
ToolTip = 'Get the Field Service Integration app from Microsoft Marketplace.';

trigger OnDrillDown()
var
Expand Down Expand Up @@ -636,4 +636,3 @@ page 1817 "CRM Connection Setup Wizard"
Rec.Validate("Proxy Version", CRMIntegrationManagement.GetLastProxyVersionItem());
end;
}

Original file line number Diff line number Diff line change
Expand Up @@ -675,10 +675,10 @@ page 7200 "CDS Connection Setup"
action("Virtual Tables App")
{
ApplicationArea = Suite;
Caption = 'Virtual Tables AppSource App';
Caption = 'Virtual Tables Marketplace App';
Image = Setup;
Enabled = BusinessEventsSupported;
ToolTip = 'Go to Microsoft AppSource to get the Business Central Virtual Tables app. The app will let you create virtual tables for Business Central data in Dataverse';
ToolTip = 'Go to Microsoft Marketplace to get the Business Central Virtual Tables app. The app will let you create virtual tables for Business Central data in Dataverse';

trigger OnAction()
begin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@ page 7201 "CDS Connection Setup Wizard"
}
group(Control62)
{
InstructionalText = 'Use the link below to go to AppSource and get the the Business Central Virtual Table app, so you can install it in your Dataverse environment. To refresh status after you install, click back and next.';
InstructionalText = 'Use the link below to go to Marketplace and get the the Business Central Virtual Table app, so you can install it in your Dataverse environment. To refresh the status after you install, click Back and Next.';
ShowCaption = false;

field(InstallVirtualTableApp; VirtualTableAppInstallTxt)
Expand All @@ -551,7 +551,7 @@ page 7201 "CDS Connection Setup Wizard"
Editable = false;
ShowCaption = false;
Caption = ' ';
ToolTip = 'Get the Business Central Virtual Table app from Microsoft AppSource.';
ToolTip = 'Get the Business Central Virtual Table app from Microsoft Marketplace.';

trigger OnDrillDown()
begin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ codeunit 7201 "CDS Integration Impl."
VTSetCompanyIdTxt: Label 'Set company id in the virtual tables config.', Locked = true;
VTSetTenantIdTxt: Label 'Set tenant id in the virtual tables config.', Locked = true;
VTSetAadUserIdTxt: Label 'Set user id in the virtual tables config.', Locked = true;
VTAppNotInstalledTxt: Label 'The Business Central Virtual Table app is not installed in Dataverse. You must install the app from Microsoft AppSource before you can enable business events.';
VTAppNotInstalledTxt: Label 'The Business Central Virtual Table app is not installed in Dataverse. You must install the app from Microsoft Marketplace before you can enable business events.';
VTAppSourceLinkTxt: Label 'https://appsource.microsoft.com/%1/product/dynamics-365/microsoftdynsmb.businesscentral_virtualentity', Locked = true;
CRMEntityUrlTemplateTxt: Label '%1/main.aspx?pagetype=entityrecord&etn=%2&id=%3', Locked = true;
CRMEntityWithAppUrlTemplateTxt: Label '%1/main.aspx?appname=%2&pagetype=entityrecord&etn=%3&id=%4', Locked = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,9 @@ page 6322 "Power BI WS Report Selection"
action(Services)
{
ApplicationArea = All;
Caption = 'AppSource Apps';
Caption = 'Marketplace Apps';
Image = PowerBI;
ToolTip = 'Browse available apps from AppSource.';
ToolTip = 'Browse available apps from Marketplace.';
Visible = IsSaas;

trigger OnAction()
Expand Down Expand Up @@ -383,4 +383,3 @@ page 6322 "Power BI WS Report Selection"
Session.LogMessage('0000F5B', StrSubstNo(FailedToLoadReportListTelemetryErr, GetLastErrorText(true)), Verbosity::Warning, DataClassification::OrganizationIdentifiableInformation, TelemetryScope::ExtensionPublisher, 'Category', PowerBIServiceMgt.GetPowerBiTelemetryCategory());
end;
}

6 changes: 3 additions & 3 deletions src/System Application/App/AppSource Gallery/app.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"id": "79952567-63d7-4586-8b47-ba13a11a8a18",
"name": "AppSource Product Gallery",
"name": "Marketplace Product Gallery",
Comment thread
SBalslev marked this conversation as resolved.
"publisher": "Microsoft",
"brief": "AppSource Product Gallery app provides a Gallery for navigating Microsoft AppSource apps.",
"description": "Using AppSource Product Gallery you can explore apps from Microsoft AppSource and choose to install them on the current environment.",
"brief": "Marketplace Product Gallery app provides a Gallery for navigating Microsoft Marketplace apps.",
"description": "Using Marketplace Product Gallery you can explore apps from Microsoft Marketplace and choose to install them on the current environment.",
"version": "29.0.0.0",
"privacyStatement": "https://go.microsoft.com/fwlink/?linkid=724009",
"EULA": "https://go.microsoft.com/fwlink/?linkid=2009120",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ pageextension 2515 AppSourceExtensionManagement extends "Extension Management"
action("Microsoft AppSource Gallery")
{
ApplicationArea = All;
Caption = 'AppSource Gallery';
Caption = 'Marketplace Gallery';
Enabled = IsSaas;
Image = NewItem;
ToolTip = 'Browse the Microsoft AppSource Gallery for new extensions to install.';
ToolTip = 'Browse the Microsoft Marketplace Gallery for new extensions to install.';
Visible = not IsOnPremDisplay;
RunObject = Page "AppSource Product List";
RunPageMode = View;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,10 +156,10 @@ page 2516 "AppSource Product Details"
{
action(OpenInAppSource)
{
Caption = 'View on AppSource';
Caption = 'View on Marketplace';
Scope = Page;
Image = Info;
ToolTip = 'Opens the app on AppSource.';
ToolTip = 'Opens the app on Marketplace.';

trigger OnAction()
begin
Expand Down Expand Up @@ -190,10 +190,10 @@ page 2516 "AppSource Product Details"

action(InstallFromAppSource)
{
Caption = 'Install from AppSource';
Caption = 'Install from Marketplace';
Scope = Page;
Image = Download;
ToolTip = 'Installs the app from Microsoft AppSource.';
ToolTip = 'Installs the app from Microsoft Marketplace.';
Enabled = (not CurrentRecordCanBeUninstalled) and (not CurrentRecordCanBeInstalled);
Visible = (not CurrentRecordCanBeUninstalled) and (not CurrentRecordCanBeInstalled);

Expand Down Expand Up @@ -231,7 +231,7 @@ page 2516 "AppSource Product Details"
CurrentRecordCanBeInstalled: Boolean;
PlansOverview: Text;
PlansAreVisible: Boolean;
PurchaseLicensesElsewhereLbl: Label 'Installing this app might lead to undesired behavior if licenses are not purchased before use. You must purchase licenses through Microsoft AppSource.\Do you want to continue with the installation?';
PurchaseLicensesElsewhereLbl: Label 'Installing this app might lead to undesired behavior if licenses are not purchased before use. You must purchase licenses through Microsoft Marketplace.\Do you want to continue with the installation?';
PlanLinePrUserPrMonthLbl: Label '%1 %2 user/month', Comment = 'Price added a plan line, %1 is the currency code, such as USD or IDR, %2 is the price';
PlanLinePrUserPrYearLbl: Label '%1 %2 user/year', Comment = 'Price added a plan line, %1 is the currency code, such as USD or IDR, %2 is the price';
PlanLineFirstMonthIsFreeLbl: Label 'First month free, then %1.', Comment = 'Added to the plan line when the first month is free, %1 is the plan after the trial period.';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ using System.Environment.Configuration;
page 2515 "AppSource Product List"
{
PageType = List;
Caption = 'Microsoft AppSource apps';
Caption = 'Microsoft Marketplace apps';
ApplicationArea = All;
UsageCategory = Administration;
Editable = false;
Expand Down Expand Up @@ -106,10 +106,10 @@ page 2515 "AppSource Product List"
{
action(OpenAppSource)
{
Caption = 'Go to AppSource';
Caption = 'Go to Marketplace';
Scope = Page;
Image = GoTo;
ToolTip = 'View all apps on AppSource';
ToolTip = 'View all apps on Marketplace';

trigger OnAction()
begin
Expand All @@ -119,10 +119,10 @@ page 2515 "AppSource Product List"

action(OpenInAppSource)
{
Caption = 'View on AppSource';
Caption = 'View on Marketplace';
Scope = Repeater;
Image = Info;
ToolTip = 'View selected app on AppSource';
ToolTip = 'View selected app on Marketplace';

trigger OnAction()
begin
Expand All @@ -135,7 +135,7 @@ page 2515 "AppSource Product List"
Caption = 'Edit User Settings';
RunObject = page "User Settings";
Image = UserSetup;
ToolTip = 'Locale determines the language used for details about the app in Business Central and on AppSource.';
ToolTip = 'Locale determines the language used for details about the app in Business Central and on Marketplace.';
}
}

Expand All @@ -145,7 +145,7 @@ page 2515 "AppSource Product List"
{
Caption = 'Refresh apps';
Scope = Page;
ToolTip = 'Refreshes the list by downloading the latest apps from Microsoft AppSource';
ToolTip = 'Refreshes the list by downloading the latest apps from Microsoft Marketplace';
Image = Refresh;

trigger OnAction()
Expand Down
Loading
Loading