diff --git a/src/System Application/App/Guided Experience/Resources/EarlyAccessPreviewFeatures.json b/src/System Application/App/Guided Experience/Resources/EarlyAccessPreviewFeatures.json index cf4baeb7a9..b93458cdff 100644 --- a/src/System Application/App/Guided Experience/Resources/EarlyAccessPreviewFeatures.json +++ b/src/System Application/App/Guided Experience/Resources/EarlyAccessPreviewFeatures.json @@ -2,6 +2,7 @@ { "FeatureName": "Sample File", "Description": "Do not update this file", + "Category": "General", "HelpURL": "https://learn.microsoft.com/dynamics365/business-central/", "VideoURL": "https://www.youtube.com/" } diff --git a/src/System Application/App/Guided Experience/src/Early Access Preview/EarlyAccessPreviewFeatures.Page.al b/src/System Application/App/Guided Experience/src/Early Access Preview/EarlyAccessPreviewFeatures.Page.al index a3afdec1f4..0ed3876f4d 100644 --- a/src/System Application/App/Guided Experience/src/Early Access Preview/EarlyAccessPreviewFeatures.Page.al +++ b/src/System Application/App/Guided Experience/src/Early Access Preview/EarlyAccessPreviewFeatures.Page.al @@ -34,7 +34,7 @@ page 1965 "Early Access Preview Features" } repeater(Features) { - field("Feature Name"; Rec."Short Title") + field("Feature Name"; Rec.Title) { ApplicationArea = All; ToolTip = 'Specifies the name of the new feature.'; @@ -51,6 +51,16 @@ page 1965 "Early Access Preview Features" { ApplicationArea = All; ToolTip = 'Specifies a description of the new feature.'; + + trigger OnDrillDown() + begin + Message(Rec.Description); + end; + } + field(Category; Rec.Keywords) + { + ApplicationArea = All; + ToolTip = 'Specifies the category of the new feature.'; } field("Help URL"; Rec."Help URL") { @@ -105,7 +115,7 @@ page 1965 "Early Access Preview Features" var Feedback: Codeunit "Microsoft User Feedback"; begin - Feedback.RequestFeedback(Rec."Short Title"); + Feedback.RequestFeedback(Rec.Title); end; } action(ViewHelp) diff --git a/src/System Application/App/Guided Experience/src/Early Access Preview/EarlyAccessPreviewMgt.Codeunit.al b/src/System Application/App/Guided Experience/src/Early Access Preview/EarlyAccessPreviewMgt.Codeunit.al index 1fb264b448..65bc76d52b 100644 --- a/src/System Application/App/Guided Experience/src/Early Access Preview/EarlyAccessPreviewMgt.Codeunit.al +++ b/src/System Application/App/Guided Experience/src/Early Access Preview/EarlyAccessPreviewMgt.Codeunit.al @@ -25,7 +25,7 @@ codeunit 1965 "Early Access Preview Mgt." FeatureNo := 0; // Load JSON from resource file - NavApp.GetResource('EarlyAccessPreviewFeatures.json', InStr); + NavApp.GetResource('EarlyAccessPreviewFeatures.json', InStr, TextEncoding::UTF8); InStr.Read(FeatureText); // Parse JSON array @@ -39,11 +39,14 @@ codeunit 1965 "Early Access Preview Mgt." GuidedExperienceItem.Code := Format(FeatureNo); if FeatureObject.Get('FeatureName', FeatureToken) then - GuidedExperienceItem."Short Title" := CopyStr(FeatureToken.AsValue().AsText(), 1, MaxStrLen(GuidedExperienceItem."Short Title")); + GuidedExperienceItem.Title := CopyStr(FeatureToken.AsValue().AsText(), 1, MaxStrLen(GuidedExperienceItem.Title)); if FeatureObject.Get('Description', FeatureToken) then GuidedExperienceItem.Description := CopyStr(FeatureToken.AsValue().AsText(), 1, MaxStrLen(GuidedExperienceItem.Description)); + if FeatureObject.Get('Category', FeatureToken) then + GuidedExperienceItem.Keywords := CopyStr(FeatureToken.AsValue().AsText(), 1, MaxStrLen(GuidedExperienceItem.Keywords)); + if FeatureObject.Get('HelpURL', FeatureToken) then GuidedExperienceItem."Help URL" := CopyStr(FeatureToken.AsValue().AsText(), 1, MaxStrLen(GuidedExperienceItem."Help URL")); diff --git a/src/System Application/App/Resources/Files/EarlyAccessPreviewFeatures.json b/src/System Application/App/Resources/Files/EarlyAccessPreviewFeatures.json index 45b8942b25..a0de0317e8 100644 --- a/src/System Application/App/Resources/Files/EarlyAccessPreviewFeatures.json +++ b/src/System Application/App/Resources/Files/EarlyAccessPreviewFeatures.json @@ -2,66 +2,77 @@ { "FeatureName": "Create contract service orders with respect to the One Service Item Line/Order setting", "Description": "Ensure consistent service order creation by enforcing the One Service Item Line/Order rule when generating orders from service contracts. Start by reviewing the \"One Service Item Line/Order\" field on the \"Service Management Setup\" page to understand whether orders will be split per service item or combined. Open the \"Create Contract Service Orders\" page, set the \"Starting Date\" and \"Ending Date\", and apply filters as needed. Run the batch to automatically create service orders for planned service dates.", + "Category": "Service Management", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Post purchase invoices for drop shipments independently of related sales invoices", "Description": "This feature lets you post purchase invoices for drop shipment orders even if the related sales invoice hasn't been posted yet, supporting workflows where vendor invoicing and customer billing happen at different times. To use it, open the Purchase Order with drop shipmnet lines and post the invoice directly. You can also use the \"Get receipt lines\" action in the purchase invoice to invoice received drop shipment lines.", + "Category": "Purchasing", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Send Posted Sales Shipments and Return Receipts via Email", "Description": "Enable users to email posted sales shipments and return receipts directly from Business Central. This helps businesses deliver critical shipment documents quickly and improves customer communication. To get started, open the Posted Sales Shipment or Posted Return Receipt pages and use the \"Send by Email\" or \"Send\" actions. You can also print and attach the PDF version in the Attachment part.", + "Category": "Sales", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Create purchase quotes for contacts", "Description": "Create purchase quotes for contacts before committing to vendor creation, reducing administrative overhead and speeding up quote registration. Start on the \"Purchase Quote\" page and select a \"Contact No.\" that is not linked to a vendor, then (if needed) choose a \"Vendor Template Code\" when multiple templates are available. Enter the quote lines and other required details as usual. When you use \"Release\" or \"Make Order\", Business Central automatically creates the vendor based on the selected template and converts the document accordingly.", + "Category": "Purchasing", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Assign custom collections to items exported to Shopify", "Description": "Synchronize Shopify custom collections with Business Central to streamline product organization and support tax-override scenarios. Start on the \"Shopify Custom Product Collections\" page to import collections from Shopify and choose which ones should be added when exporting items to Shopify. You can specify advanced conditions to define when specific item is added to collection during export.", + "Category": "Shopify", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Create Purchase Orders from Drop Shipment Sales Orders", "Description": "Create purchase orders directly from sales orders marked for Drop Shipment to speed up processing and improve backorder accuracy. Start on a sales order with Drop Shipment lines and use the \"Create Purchase Orders\" action to create purchase order. Or include these sales orders through \"Order Planning\" page or choose the \"Drop Shipment\" action group in the \"Planning Worksheet\".", + "Category": "Sales", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Get item insights with advanced KPIs", "Description": "Gain deeper insights into item performance with enhanced KPIs such as sales growth, gross margin, and return rates. To explore this feature, open the \"Item Statistics\" page for any item to review financial and performance metrics across multiple time periods. Review fields like \"Current Inventory Value\", \"Expired Inventory Value\", and the Sales metrics across fiscal periods to understand item trends quickly.", + "Category": "Inventory", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Add pictures to item variants to visually differentiate product options", "Description": "This feature reduces confusion when working with large assortments by letting you visually distinguish item variants through dedicated pictures. You can manage variant images from the Item Card by opening Variants, selecting a variant, and using the Picture factbox on the Item Variant Card. From there, you can import a file, take a picture with your device, export the current image, or delete it to keep variant visuals up to date.", + "Category": "Inventory", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Define item attributes at the item variant level", "Description": "This feature gives you more accurate and flexible product information by letting you specify and adjust attribute values for each item variant while still inheriting attributes from the item. Start from the \"Item Variants List\" or \"Item Variant Card\" to review or edit variant‑specific attribute values. When adding a new variant, attributes from the item are copied automatically, and you can update or remove inherited values. You can also use the \"Update Variant Attributes\" action on the \"Item Card\" to sync attributes from the item to all variants.", + "Category": "Inventory", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Description 2 is now available on Production and Planning pages", "Description": "Explore the \"Description 2\" field on pages such as Production BOM Lines, Routing Lines, Prod. Order Components, and Planning Components. You can now view, edit, and use Description 2 consistently during planning and production order creation. Start by opening any of the listed pages and adding the Description 2 field through personalization.", + "Category": "Manufacturing", "HelpURL": "", "VideoURL": "" }, { "FeatureName": "Use checkout currency when creating sales documents from Shopify orders", "Description": "This feature lets you choose whether Business Central creates sales documents using the shop currency or the customer's checkout (presentment) currency, helping you avoid unnecessary conversions and match exactly what customers paid. To get started, open the \"Shopify Shop Card\" and review the new \"Currency Handling\" setting. When set to Presentment currency, imported Shopify orders, sales documents, and Suggest Payments will use checkout currency amounts. Explore Shopify Orders, Order Lines, and Transactions pages to see both presentment and shop currency values.", + "Category": "Shopify", "HelpURL": "", "VideoURL": "" }