From 721c95a65cdcfb865aff2070bb570de846677541 Mon Sep 17 00:00:00 2001 From: Dusan Jakovljevic <134404137+JakovljevicDusan@users.noreply.github.com> Date: Tue, 17 Mar 2026 19:58:12 +0100 Subject: [PATCH 1/9] Permissions "D365 BASIC" -> "D365 BASIC ISV" "QltyMngmnt - Edit" -> "QltyMngmnt - Admin" Include HasAdminSupervisorRole() into reopen inspection action check 4. Limit "permissionset 20404 QltyMngmntInspector" to operational-only role pragmas Fix pragma [Quality Management] [28.0] Improve Permissions (#7289) Changes: 1. Drop permissionsetextension 20400 "D365 BASIC - QltyMngmnt" extends "D365 BASIC", and replace with "D365 BASIC ISV". 2. Rename permissionset 20405 "QltyMngmnt - Edit" to "QltyMngmnt - Admin" ('Quality Management - Administrator') 3. Include HasAdminSupervisorRole() into reopen inspection action check 4. Limit "permissionset 20404 QltyMngmntInspector" to operational-only role needs to be open and approved. Submitting PRs with no linked issues or unapproved issues is highly discouraged. --> Fixes [AB#622201](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/622201) [Quality Management] Standardize 'QltyMngmnt' to 'QltyMgmt' across permission sets and related code Include permissionsetextension --- build/Packages.json | 2 +- .../src/QltyInspectionUtility.Codeunit.al | 4 +-- .../QltyPermissionMgmt.Codeunit.al | 28 ++++++++++----- .../Document/QltyInspectionHeader.Table.al | 3 +- .../src/Document/QltyInspectionLine.Table.al | 1 + ...AdministratorQltyMgmt.PermissionSetExt.al} | 8 +++-- ... D365BasicIsvQltyMgmt.PermissionSetExt.al} | 8 +++-- ...BusFullAccessQltyMgmt.PermissionSetExt.al} | 8 +++-- ...l => D365ReadQltyMgmt.PermissionSetExt.al} | 8 +++-- ...nSet.al => QltyMgmtAdmin.PermissionSet.al} | 10 ++++-- ....al => QltyMgmtInspector.PermissionSet.al} | 35 ++++++++++--------- ...et.al => QltyMgmtObjects.PermissionSet.al} | 8 +++-- ...onSet.al => QltyMgmtRead.PermissionSet.al} | 10 ++++-- .../QltyInspectionActivities.Page.al | 1 + .../Workflow/QltyWorkflowResponse.Codeunit.al | 3 +- .../src/QltyTestsPermissionMgmt.Codeunit.al | 20 +++++------ 16 files changed, 97 insertions(+), 60 deletions(-) rename src/Apps/W1/Quality Management/app/src/Permissions/{D365BasicQltyMngmnt.PermissionSetExt.al => AdministratorQltyMgmt.PermissionSetExt.al} (70%) rename src/Apps/W1/Quality Management/app/src/Permissions/{D365BusFullAccessQltyMngmnt.PermissionSetExt.al => D365BasicIsvQltyMgmt.PermissionSetExt.al} (69%) rename src/Apps/W1/Quality Management/app/src/Permissions/{D365ReadQltyMngmnt.PermissionSetExt.al => D365BusFullAccessQltyMgmt.PermissionSetExt.al} (68%) rename src/Apps/W1/Quality Management/app/src/Permissions/{AdministratorQltyMngmnt.PermissionSetExt.al => D365ReadQltyMgmt.PermissionSetExt.al} (71%) rename src/Apps/W1/Quality Management/app/src/Permissions/{QltyMngmntEdit.PermissionSet.al => QltyMgmtAdmin.PermissionSet.al} (88%) rename src/Apps/W1/Quality Management/app/src/Permissions/{QltyMngmntInspector.PermissionSet.al => QltyMgmtInspector.PermissionSet.al} (57%) rename src/Apps/W1/Quality Management/app/src/Permissions/{QltyMngmntObjects.PermissionSet.al => QltyMgmtObjects.PermissionSet.al} (97%) rename src/Apps/W1/Quality Management/app/src/Permissions/{QltyMngmntRead.PermissionSet.al => QltyMgmtRead.PermissionSet.al} (88%) diff --git a/build/Packages.json b/build/Packages.json index 73c08cac2e..515b180a54 100644 --- a/build/Packages.json +++ b/build/Packages.json @@ -4,7 +4,7 @@ "Source": "NuGet.org" }, "AppBaselines-BCArtifacts": { - "Version": "28.1.48062.0", + "Version": "28.1.48062.X", "Source": "BCArtifacts", "_comment": "Used to fetch app baselines from BC artifacts" } diff --git a/src/Apps/W1/Quality Management/Test Library/src/QltyInspectionUtility.Codeunit.al b/src/Apps/W1/Quality Management/Test Library/src/QltyInspectionUtility.Codeunit.al index 568f56711b..86a3051844 100644 --- a/src/Apps/W1/Quality Management/Test Library/src/QltyInspectionUtility.Codeunit.al +++ b/src/Apps/W1/Quality Management/Test Library/src/QltyInspectionUtility.Codeunit.al @@ -54,7 +54,7 @@ codeunit 139940 "Qlty. Inspection Utility" LibraryUtility: Codeunit "Library - Utility"; NoSeriesCodeunit: Codeunit "No. Series"; DefaultResult2PassCodeLbl: Label 'PASS', Locked = true; - SupervisorRoleIDTok: Label 'QltyMngmnt - Edit', Locked = true; + AdminSupervisorRoleIDTok: Label 'QltyMgmt - Admin', Locked = true; internal procedure EnsureSetupExists() var @@ -62,7 +62,7 @@ codeunit 139940 "Qlty. Inspection Utility" UserPermissionsLibrary: Codeunit "User Permissions Library"; begin QltyAutoConfigure.EnsureBasicSetupExists(false); - UserPermissionsLibrary.AssignPermissionSetToUser(UserSecurityId(), SupervisorRoleIDTok); + UserPermissionsLibrary.AssignPermissionSetToUser(UserSecurityId(), AdminSupervisorRoleIDTok); end; internal procedure CreateABasicTemplateAndInstanceOfAInspection(var OutCreatedQltyInspectionHeader: Record "Qlty. Inspection Header"; var OutQltyInspectionTemplateHdr: Record "Qlty. Inspection Template Hdr.") diff --git a/src/Apps/W1/Quality Management/app/src/AccessControl/QltyPermissionMgmt.Codeunit.al b/src/Apps/W1/Quality Management/app/src/AccessControl/QltyPermissionMgmt.Codeunit.al index d56651c00d..14f0978e9c 100644 --- a/src/Apps/W1/Quality Management/app/src/AccessControl/QltyPermissionMgmt.Codeunit.al +++ b/src/Apps/W1/Quality Management/app/src/AccessControl/QltyPermissionMgmt.Codeunit.al @@ -28,7 +28,7 @@ codeunit 20406 "Qlty. Permission Mgmt." ActionChangeItemTrackingLbl: Label 'change item tracking'; ActionChangeSourceQuantityLbl: Label 'change source quantity'; ActionEditLineCommentLbl: Label 'edit line note/comment'; - SupervisorRoleIDTxt: Label 'QltyMngmnt - Edit', Locked = true; + AdminSupervisorRoleIDTxt: Label 'QltyMgmt - Admin', Locked = true; UserDoesNotHavePermissionToErr: Label 'The user [%1] does not have permission to [%2].', Comment = '%1=User id, %2=permission being attempted'; /// @@ -64,7 +64,7 @@ codeunit 20406 "Qlty. Permission Mgmt." /// True if the user can change other users' inspections; otherwise, false. internal procedure CanChangeOtherInspections(): Boolean begin - exit(HasSupervisorRole()); + exit(HasAdminSupervisorRole()); end; /// @@ -90,10 +90,22 @@ codeunit 20406 "Qlty. Permission Mgmt." /// internal procedure VerifyCanReopenInspection() begin - if not CanModifyTableData(Database::"Qlty. Inspection Header") then + if not CanReopenInspection() then Error(UserDoesNotHavePermissionToErr, UserId(), ActionReopenInspectionLbl); end; + /// + /// Checks if the current user can reopen an inspection. + /// + /// True if the user can reopen an inspection; otherwise, false. + local procedure CanReopenInspection(): Boolean + begin + if not CanModifyTableData(Database::"Qlty. Inspection Header") then + exit(false); + + exit(HasAdminSupervisorRole()); + end; + /// /// Verifies the current user can delete an open inspection. Throws an error if not permitted. /// @@ -121,7 +133,7 @@ codeunit 20406 "Qlty. Permission Mgmt." if not CanDeleteTableData(Database::"Qlty. Inspection Header") then exit(false); - exit(HasSupervisorRole()); + exit(HasAdminSupervisorRole()); end; /// @@ -160,7 +172,7 @@ codeunit 20406 "Qlty. Permission Mgmt." if not CanModifyTableData(Database::"Qlty. Inspection Header") then exit(false); - exit(HasSupervisorRole()); + exit(HasAdminSupervisorRole()); end; /// @@ -195,15 +207,15 @@ codeunit 20406 "Qlty. Permission Mgmt." end; #region Verify Permissions - local procedure HasSupervisorRole() IsAssigned: Boolean + local procedure HasAdminSupervisorRole() IsAssigned: Boolean var UserPermissions: Codeunit "User Permissions"; CurrentExtensionModuleInfo: ModuleInfo; begin - IsAssigned := HasUserPermissionSetDirectlyAssigned(UserSecurityId(), SupervisorRoleIDTxt); + IsAssigned := HasUserPermissionSetDirectlyAssigned(UserSecurityId(), AdminSupervisorRoleIDTxt); if not IsAssigned then if NavApp.GetCurrentModuleInfo(CurrentExtensionModuleInfo) then - IsAssigned := UserPermissions.HasUserPermissionSetAssigned(UserSecurityId(), CompanyName(), SupervisorRoleIDTxt, 0, CurrentExtensionModuleInfo.Id()); + IsAssigned := UserPermissions.HasUserPermissionSetAssigned(UserSecurityId(), CompanyName(), AdminSupervisorRoleIDTxt, 0, CurrentExtensionModuleInfo.Id()); if not IsAssigned then IsAssigned := UserPermissions.IsSuper(UserSecurityId()); end; diff --git a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionHeader.Table.al b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionHeader.Table.al index 87e1a1b656..f11afba971 100644 --- a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionHeader.Table.al +++ b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionHeader.Table.al @@ -34,7 +34,8 @@ table 20405 "Qlty. Inspection Header" DrillDownPageId = "Qlty. Inspection List"; LookupPageId = "Qlty. Inspection List"; DataClassification = CustomerContent; - Permissions = tabledata "Qlty. Inspection Line" = d; + Permissions = tabledata "Qlty. Inspection Line" = d, + tabledata "Qlty. I. Result Condit. Conf." = d; fields { diff --git a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionLine.Table.al b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionLine.Table.al index e9f32a3b9a..cef37cd9b6 100644 --- a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionLine.Table.al +++ b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionLine.Table.al @@ -22,6 +22,7 @@ table 20406 "Qlty. Inspection Line" LookupPageId = "Qlty. Inspection Lines"; DrillDownPageId = "Qlty. Inspection Lines"; DataClassification = CustomerContent; + Permissions = tabledata "Qlty. I. Result Condit. Conf." = d; fields { diff --git a/src/Apps/W1/Quality Management/app/src/Permissions/D365BasicQltyMngmnt.PermissionSetExt.al b/src/Apps/W1/Quality Management/app/src/Permissions/AdministratorQltyMgmt.PermissionSetExt.al similarity index 70% rename from src/Apps/W1/Quality Management/app/src/Permissions/D365BasicQltyMngmnt.PermissionSetExt.al rename to src/Apps/W1/Quality Management/app/src/Permissions/AdministratorQltyMgmt.PermissionSetExt.al index 1aa3b8824f..f7a3426735 100644 --- a/src/Apps/W1/Quality Management/app/src/Permissions/D365BasicQltyMngmnt.PermissionSetExt.al +++ b/src/Apps/W1/Quality Management/app/src/Permissions/AdministratorQltyMgmt.PermissionSetExt.al @@ -6,7 +6,9 @@ namespace Microsoft.QualityManagement.Permissions; using System.Security.AccessControl; -permissionsetextension 20400 "D365 BASIC - QltyMngmnt" extends "D365 BASIC" +#pragma warning disable AS0090 +permissionsetextension 20402 "Administrator - QltyMgmt" extends "Administrator" { - IncludedPermissionSets = "QltyMngmnt - Edit"; -} \ No newline at end of file + IncludedPermissionSets = "QltyMgmt - Admin"; +} +#pragma warning restore AS0090 \ No newline at end of file diff --git a/src/Apps/W1/Quality Management/app/src/Permissions/D365BusFullAccessQltyMngmnt.PermissionSetExt.al b/src/Apps/W1/Quality Management/app/src/Permissions/D365BasicIsvQltyMgmt.PermissionSetExt.al similarity index 69% rename from src/Apps/W1/Quality Management/app/src/Permissions/D365BusFullAccessQltyMngmnt.PermissionSetExt.al rename to src/Apps/W1/Quality Management/app/src/Permissions/D365BasicIsvQltyMgmt.PermissionSetExt.al index b6f8d3a6b6..134cb9f53b 100644 --- a/src/Apps/W1/Quality Management/app/src/Permissions/D365BusFullAccessQltyMngmnt.PermissionSetExt.al +++ b/src/Apps/W1/Quality Management/app/src/Permissions/D365BasicIsvQltyMgmt.PermissionSetExt.al @@ -6,7 +6,9 @@ namespace Microsoft.QualityManagement.Permissions; using System.Security.AccessControl; -permissionsetextension 20401 "D365 BUS FULL ACCESS - QltyMngmnt" extends "D365 BUS FULL ACCESS" +#pragma warning disable AS0090 +permissionsetextension 20400 "D365 BASIC ISV - QltyMgmt" extends "D365 BASIC ISV" { - IncludedPermissionSets = "QltyMngmnt - Edit"; -} \ No newline at end of file + IncludedPermissionSets = "QltyMgmt - Admin"; +} +#pragma warning restore AS0090 \ No newline at end of file diff --git a/src/Apps/W1/Quality Management/app/src/Permissions/D365ReadQltyMngmnt.PermissionSetExt.al b/src/Apps/W1/Quality Management/app/src/Permissions/D365BusFullAccessQltyMgmt.PermissionSetExt.al similarity index 68% rename from src/Apps/W1/Quality Management/app/src/Permissions/D365ReadQltyMngmnt.PermissionSetExt.al rename to src/Apps/W1/Quality Management/app/src/Permissions/D365BusFullAccessQltyMgmt.PermissionSetExt.al index 6271133f8b..73077e94a3 100644 --- a/src/Apps/W1/Quality Management/app/src/Permissions/D365ReadQltyMngmnt.PermissionSetExt.al +++ b/src/Apps/W1/Quality Management/app/src/Permissions/D365BusFullAccessQltyMgmt.PermissionSetExt.al @@ -6,7 +6,9 @@ namespace Microsoft.QualityManagement.Permissions; using System.Security.AccessControl; -permissionsetextension 20403 "D365 READ - QltyMngmnt" extends "D365 READ" +#pragma warning disable AS0090 +permissionsetextension 20401 "D365 BUS FULL ACCESS - QltyMgmt" extends "D365 BUS FULL ACCESS" { - IncludedPermissionSets = "QltyMngmnt - Read"; -} \ No newline at end of file + IncludedPermissionSets = "QltyMgmt - Admin"; +} +#pragma warning restore AS0090 \ No newline at end of file diff --git a/src/Apps/W1/Quality Management/app/src/Permissions/AdministratorQltyMngmnt.PermissionSetExt.al b/src/Apps/W1/Quality Management/app/src/Permissions/D365ReadQltyMgmt.PermissionSetExt.al similarity index 71% rename from src/Apps/W1/Quality Management/app/src/Permissions/AdministratorQltyMngmnt.PermissionSetExt.al rename to src/Apps/W1/Quality Management/app/src/Permissions/D365ReadQltyMgmt.PermissionSetExt.al index 4b49d6c5da..4fb75a5ef0 100644 --- a/src/Apps/W1/Quality Management/app/src/Permissions/AdministratorQltyMngmnt.PermissionSetExt.al +++ b/src/Apps/W1/Quality Management/app/src/Permissions/D365ReadQltyMgmt.PermissionSetExt.al @@ -6,7 +6,9 @@ namespace Microsoft.QualityManagement.Permissions; using System.Security.AccessControl; -permissionsetextension 20402 "Administrator - QltyMngmnt" extends "Administrator" +#pragma warning disable AS0090 +permissionsetextension 20403 "D365 READ - QltyMgmt" extends "D365 READ" { - IncludedPermissionSets = "QltyMngmnt - Edit"; -} \ No newline at end of file + IncludedPermissionSets = "QltyMgmt - Read"; +} +#pragma warning restore AS0090 \ No newline at end of file diff --git a/src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntEdit.PermissionSet.al b/src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtAdmin.PermissionSet.al similarity index 88% rename from src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntEdit.PermissionSet.al rename to src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtAdmin.PermissionSet.al index 6a9d66f7a8..920d325e95 100644 --- a/src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntEdit.PermissionSet.al +++ b/src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtAdmin.PermissionSet.al @@ -18,13 +18,15 @@ using Microsoft.QualityManagement.Workflow; /// /// Used for administering Quality Management and supervising Quality Inspections. /// -permissionset 20405 "QltyMngmnt - Edit" +#pragma warning disable AS0125 +#pragma warning disable AS0090 +permissionset 20405 "QltyMgmt - Admin" { - Caption = 'Quality Management - Full edit access'; + Caption = 'Quality Admin & Supervisor'; Access = Public; Assignable = true; - IncludedPermissionSets = "QltyMngmnt - Objects"; + IncludedPermissionSets = "QltyMgmt - Objects"; Permissions = tabledata "Qlty. Management Setup" = RIMD, @@ -43,3 +45,5 @@ permissionset 20405 "QltyMngmnt - Edit" tabledata "Qlty. Inspection Header" = RIMD, tabledata "Qlty. Inspection Line" = RIMD; } +#pragma warning restore AS0090 +#pragma warning restore AS0125 \ No newline at end of file diff --git a/src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntInspector.PermissionSet.al b/src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtInspector.PermissionSet.al similarity index 57% rename from src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntInspector.PermissionSet.al rename to src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtInspector.PermissionSet.al index 3fdf824ecc..cfd02d529a 100644 --- a/src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntInspector.PermissionSet.al +++ b/src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtInspector.PermissionSet.al @@ -10,7 +10,6 @@ using Microsoft.QualityManagement.Configuration.SourceConfiguration; using Microsoft.QualityManagement.Configuration.Template; using Microsoft.QualityManagement.Configuration.Template.Test; using Microsoft.QualityManagement.Document; -using Microsoft.QualityManagement.Integration.Inventory.Transfer; using Microsoft.QualityManagement.RoleCenters; using Microsoft.QualityManagement.Setup; using Microsoft.QualityManagement.Workflow; @@ -18,29 +17,31 @@ using Microsoft.QualityManagement.Workflow; /// /// Used for working with Quality Inspections. /// -permissionset 20404 QltyMngmntInspector +#pragma warning disable AS0125 +#pragma warning disable AS0090 +permissionset 20404 "QltyMgmt - Inspector" { - Caption = 'Quality Management - Quality Inspector'; + Caption = 'Quality Inspector'; Access = Public; Assignable = true; - IncludedPermissionSets = "QltyMngmnt - Objects"; + IncludedPermissionSets = "QltyMgmt - Objects"; Permissions = - tabledata "Qlty. Workflow Config. Value" = RIMD, - tabledata "Qlty. Inspection Gen. Rule" = RIMd, + tabledata "Qlty. Workflow Config. Value" = Rim, + tabledata "Qlty. Inspection Gen. Rule" = R, tabledata "Qlty. I. Result Condit. Conf." = RIMd, - tabledata "Qlty. Inspection Result" = RIMd, - tabledata "Qlty. Inspection Template Hdr." = RIMd, - tabledata "Qlty. Inspection Template Line" = RIMd, - tabledata "Qlty. Test Lookup Value" = RIMd, - tabledata "Qlty. Management Setup" = RIMd, - tabledata "Qlty. Related Transfers Buffer" = RIMD, - tabledata "Qlty. Mgmt. Role Center Cue" = RIMd, - tabledata "Qlty. Inspect. Src. Fld. Conf." = RIMd, - tabledata "Qlty. Inspect. Source Config." = RIMd, + tabledata "Qlty. Inspection Result" = R, + tabledata "Qlty. Inspection Template Hdr." = R, + tabledata "Qlty. Inspection Template Line" = R, + tabledata "Qlty. Test Lookup Value" = R, + tabledata "Qlty. Management Setup" = R, + tabledata "Qlty. Mgmt. Role Center Cue" = Ri, + tabledata "Qlty. Inspect. Src. Fld. Conf." = R, + tabledata "Qlty. Inspect. Source Config." = R, tabledata "Qlty. Inspection Line" = RIMd, tabledata "Qlty. Inspection Header" = RIMd, - tabledata "Qlty. Test" = RIMd; + tabledata "Qlty. Test" = R; } - +#pragma warning restore AS0090 +#pragma warning restore AS0125 \ No newline at end of file diff --git a/src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntObjects.PermissionSet.al b/src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtObjects.PermissionSet.al similarity index 97% rename from src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntObjects.PermissionSet.al rename to src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtObjects.PermissionSet.al index e50387bcf0..cf72167458 100644 --- a/src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntObjects.PermissionSet.al +++ b/src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtObjects.PermissionSet.al @@ -41,11 +41,13 @@ using Microsoft.QualityManagement.Setup.SetupGuide; using Microsoft.QualityManagement.Utilities; using Microsoft.QualityManagement.Workflow; -permissionset 20406 "QltyMngmnt - Objects" +#pragma warning disable AS0125 +#pragma warning disable AS0090 +permissionset 20406 "QltyMgmt - Objects" { Caption = 'Quality Management - Objects'; Access = Internal; - Assignable = true; + Assignable = false; Permissions = // Codeunits @@ -165,3 +167,5 @@ permissionset 20406 "QltyMngmnt - Objects" table "Qlty. Inspection Header" = X, table "Qlty. Test" = X; } +#pragma warning restore AS0090 +#pragma warning restore AS0125 \ No newline at end of file diff --git a/src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntRead.PermissionSet.al b/src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtRead.PermissionSet.al similarity index 88% rename from src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntRead.PermissionSet.al rename to src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtRead.PermissionSet.al index ba280e8fe4..0ee415ac45 100644 --- a/src/Apps/W1/Quality Management/app/src/Permissions/QltyMngmntRead.PermissionSet.al +++ b/src/Apps/W1/Quality Management/app/src/Permissions/QltyMgmtRead.PermissionSet.al @@ -18,13 +18,15 @@ using Microsoft.QualityManagement.Workflow; /// /// Used for full read-only access to Quality Management. /// -permissionset 20401 "QltyMngmnt - Read" +#pragma warning disable AS0125 +#pragma warning disable AS0090 +permissionset 20401 "QltyMgmt - Read" { - Caption = 'Quality Management - Read access'; + Caption = 'Quality Auditor'; Access = Public; Assignable = true; - IncludedPermissionSets = "QltyMngmnt - Objects"; + IncludedPermissionSets = "QltyMgmt - Objects"; Permissions = tabledata "Qlty. Management Setup" = R, @@ -43,3 +45,5 @@ permissionset 20401 "QltyMngmnt - Read" tabledata "Qlty. Inspection Header" = R, tabledata "Qlty. Inspection Line" = R; } +#pragma warning restore AS0090 +#pragma warning restore AS0125 \ No newline at end of file diff --git a/src/Apps/W1/Quality Management/app/src/RoleCenters/QltyInspectionActivities.Page.al b/src/Apps/W1/Quality Management/app/src/RoleCenters/QltyInspectionActivities.Page.al index 83854b9c48..1ff2eb1410 100644 --- a/src/Apps/W1/Quality Management/app/src/RoleCenters/QltyInspectionActivities.Page.al +++ b/src/Apps/W1/Quality Management/app/src/RoleCenters/QltyInspectionActivities.Page.al @@ -13,6 +13,7 @@ page 20425 "Qlty. Inspection Activities" RefreshOnActivate = true; SourceTable = "Qlty. Mgmt. Role Center Cue"; ApplicationArea = QualityManagement; + Permissions = TableData "Qlty. Mgmt. Role Center Cue" = i; layout { diff --git a/src/Apps/W1/Quality Management/app/src/Workflow/QltyWorkflowResponse.Codeunit.al b/src/Apps/W1/Quality Management/app/src/Workflow/QltyWorkflowResponse.Codeunit.al index 038744b314..67be6b0918 100644 --- a/src/Apps/W1/Quality Management/app/src/Workflow/QltyWorkflowResponse.Codeunit.al +++ b/src/Apps/W1/Quality Management/app/src/Workflow/QltyWorkflowResponse.Codeunit.al @@ -23,7 +23,8 @@ using System.Reflection; /// codeunit 20424 "Qlty. Workflow Response" { - Permissions = tabledata "Workflow Step Instance" = r; + Permissions = tabledata "Workflow Step Instance" = r, + tabledata "Qlty. Workflow Config. Value" = im; var QltyWorkflowSetup: Codeunit "Qlty. Workflow Setup"; diff --git a/src/Apps/W1/Quality Management/test/src/QltyTestsPermissionMgmt.Codeunit.al b/src/Apps/W1/Quality Management/test/src/QltyTestsPermissionMgmt.Codeunit.al index 5759d264b2..3cd140bea6 100644 --- a/src/Apps/W1/Quality Management/test/src/QltyTestsPermissionMgmt.Codeunit.al +++ b/src/Apps/W1/Quality Management/test/src/QltyTestsPermissionMgmt.Codeunit.al @@ -19,7 +19,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." QltyInspectionUtility: Codeunit "Qlty. Inspection Utility"; LibraryAssert: Codeunit "Library Assert"; UserDoesNotHavePermissionToErr: Label 'The user [%1] does not have permission to [%2].', Comment = '%1=User id, %2=permission being attempted'; - SupervisorRoleIDTok: Label 'QltyMngmnt - Edit', Locked = true; + AdminSupervisorRoleIDTok: Label 'QltyMgmt - Admin', Locked = true; [Test] procedure VerifyCanCreateManualInspection_ShouldError() @@ -41,7 +41,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." // [SCENARIO] Verify that creating a manual inspection succeeds with proper supervisor permissions // [GIVEN] The supervisor role permission set is added - LibraryLowerPermissions.AddPermissionSet(SupervisorRoleIDTok); + LibraryLowerPermissions.AddPermissionSet(AdminSupervisorRoleIDTok); // [WHEN] VerifyCanCreateManualInspection is called QltyInspectionUtility.VerifyCanCreateManualInspection(); @@ -69,7 +69,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." // [SCENARIO] Verify that creating a re-inspection succeeds with proper supervisor permissions // [GIVEN] The supervisor role permission set is added - LibraryLowerPermissions.AddPermissionSet(SupervisorRoleIDTok); + LibraryLowerPermissions.AddPermissionSet(AdminSupervisorRoleIDTok); // [WHEN] VerifyCanCreateReinspection is called QltyInspectionUtility.VerifyCanCreateReinspection(); @@ -97,7 +97,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." // [SCENARIO] Verify that deleting an open inspection succeeds with proper supervisor permissions // [GIVEN] The supervisor role permission set is added - LibraryLowerPermissions.AddPermissionSet(SupervisorRoleIDTok); + LibraryLowerPermissions.AddPermissionSet(AdminSupervisorRoleIDTok); // [WHEN] VerifyCanDeleteOpenInspection is called QltyInspectionUtility.VerifyCanDeleteOpenInspection(); @@ -125,7 +125,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." // [SCENARIO] Verify that deleting a finished inspection succeeds with proper supervisor permissions // [GIVEN] The supervisor role permission set is added - LibraryLowerPermissions.AddPermissionSet(SupervisorRoleIDTok); + LibraryLowerPermissions.AddPermissionSet(AdminSupervisorRoleIDTok); // [WHEN] VerifyCanDeleteFinishedInspection is called QltyInspectionUtility.VerifyCanDeleteFinishedInspection(); @@ -140,7 +140,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." // [SCENARIO] Verify that changing other users' inspections succeeds with proper supervisor permissions // [GIVEN] The supervisor role permission set is added - LibraryLowerPermissions.AddPermissionSet(SupervisorRoleIDTok); + LibraryLowerPermissions.AddPermissionSet(AdminSupervisorRoleIDTok); // [WHEN] VerifyCanChangeOtherInspections is called QltyInspectionUtility.VerifyCanChangeOtherInspections(); @@ -169,7 +169,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." // [SCENARIO] Verify that reopening an inspection succeeds with proper supervisor permissions // [GIVEN] The supervisor role permission set is added - LibraryLowerPermissions.AddPermissionSet(SupervisorRoleIDTok); + LibraryLowerPermissions.AddPermissionSet(AdminSupervisorRoleIDTok); // [WHEN] VerifyCanReopenInspection is called QltyInspectionUtility.VerifyCanReopenInspection(); @@ -197,7 +197,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." // [SCENARIO] Verify that finishing an inspection succeeds with proper supervisor permissions // [GIVEN] The supervisor role permission set is added - LibraryLowerPermissions.AddPermissionSet(SupervisorRoleIDTok); + LibraryLowerPermissions.AddPermissionSet(AdminSupervisorRoleIDTok); // [WHEN] VerifyCanFinishInspection is called QltyInspectionUtility.VerifyCanFinishInspection(); @@ -226,7 +226,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." // [SCENARIO] Verify that changing item tracking succeeds with proper supervisor permissions // [GIVEN] The supervisor role permission set is added - LibraryLowerPermissions.AddPermissionSet(SupervisorRoleIDTok); + LibraryLowerPermissions.AddPermissionSet(AdminSupervisorRoleIDTok); // [WHEN] VerifyCanChangeItemTracking is called QltyInspectionUtility.VerifyCanChangeItemTracking(); @@ -255,7 +255,7 @@ codeunit 139957 "Qlty. Tests - Permission Mgmt." // [SCENARIO] Verify that changing source quantity succeeds with proper supervisor permissions // [GIVEN] The supervisor role permission set is added - LibraryLowerPermissions.AddPermissionSet(SupervisorRoleIDTok); + LibraryLowerPermissions.AddPermissionSet(AdminSupervisorRoleIDTok); // [WHEN] VerifyCanChangeSourceQuantity is called QltyInspectionUtility.VerifyCanChangeSourceQuantity(); From 4b1abcec07099609bd8298a03a085ecef71da421 Mon Sep 17 00:00:00 2001 From: Dusan Jakovljevic <134404137+JakovljevicDusan@users.noreply.github.com> Date: Fri, 27 Mar 2026 08:04:37 +0100 Subject: [PATCH 2/9] Quality inspections actions rename --- .../app/src/Document/QltyInspection.Page.al | 20 ++++++++++--------- .../src/Document/QltyInspectionList.Page.al | 20 ++++++++++--------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/Apps/W1/Quality Management/app/src/Document/QltyInspection.Page.al b/src/Apps/W1/Quality Management/app/src/Document/QltyInspection.Page.al index ee3c648de9..eb0f2fc284 100644 --- a/src/Apps/W1/Quality Management/app/src/Document/QltyInspection.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Document/QltyInspection.Page.al @@ -649,7 +649,7 @@ page 20406 "Qlty. Inspection" PromotedCategory = Report; Caption = 'Non Conformance Report'; ToolTip = 'Specifies the Non Conformance Report has a layout suitable for quality inspection templates that typically contain Non Conformance Report questions.'; - Image = PrintReport; + Image = Report; Promoted = true; PromotedIsBig = true; PromotedOnly = true; @@ -669,7 +669,7 @@ page 20406 "Qlty. Inspection" PromotedCategory = Report; Caption = 'Inspection Report'; ToolTip = 'General purpose inspection report.'; - Image = PrintReport; + Image = Report; Promoted = true; PromotedIsBig = true; PromotedOnly = true; @@ -731,11 +731,12 @@ page 20406 "Qlty. Inspection" QltyDocumentNavigation.NavigateToFindEntries(Rec); end; } +#pragma warning disable AS0031 group(ItemAvailabilityBy) { Caption = 'Item Availability by'; Image = ItemAvailability; - action(tItemAvailabilityByEvent) + action(ItemAvailabilityByEvent) { ApplicationArea = Suite; Caption = 'Event'; @@ -751,7 +752,7 @@ page 20406 "Qlty. Inspection" AvailItemAvailabilityFormsMgt.ShowItemAvailabilityFromItem(Item, "Item Availability Type"::"Event"); end; } - action(Period) + action(ItemAvailabilityByPeriod) { ApplicationArea = Suite; Caption = 'Period'; @@ -762,7 +763,7 @@ page 20406 "Qlty. Inspection" "Variant Filter" = field("Source Variant Code"); ToolTip = 'Show the projected quantity of the item over time according to time periods, such as day, week, or month.'; } - action(Variant) + action(ItemAvailabilityByVariant) { ApplicationArea = Planning; Caption = 'Variant'; @@ -773,7 +774,7 @@ page 20406 "Qlty. Inspection" "Variant Filter" = field("Source Variant Code"); ToolTip = 'View the current and projected quantity of the item for each variant.'; } - action(Location) + action(ItemAvailabilityByLocation) { ApplicationArea = Suite; Caption = 'Location'; @@ -784,7 +785,7 @@ page 20406 "Qlty. Inspection" "Variant Filter" = field("Source Variant Code"); ToolTip = 'View the actual and projected quantity of the item per location.'; } - action(Lot) + action(ItemAvailabilityByLot) { ApplicationArea = ItemTracking; Caption = 'Lot'; @@ -793,7 +794,7 @@ page 20406 "Qlty. Inspection" RunPageLink = "No." = field("Source Item No."); ToolTip = 'View the current and projected quantity of the item for each lot.'; } - action(BinContents) + action(ItemAvailabilityByBinContents) { ApplicationArea = Warehouse; Caption = 'Bin Contents'; @@ -804,7 +805,7 @@ page 20406 "Qlty. Inspection" ToolTip = 'View the quantities of the item in each bin where it exists. You can see all the important parameters relating to bin content, and you can modify certain bin content parameters in this window.'; } } - action(tShowTransfers) + action(ShowRelatedTransferDocuments) { Caption = 'Show Related Transfer Documents'; Image = TransferOrder; @@ -816,6 +817,7 @@ page 20406 "Qlty. Inspection" Rec.RunModalRelatedTransfers(); end; } +#pragma warning restore AS0031 } } diff --git a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionList.Page.al b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionList.Page.al index 8aa2a55bfc..ad4b69bcb7 100644 --- a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionList.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionList.Page.al @@ -194,7 +194,7 @@ page 20408 "Qlty. Inspection List" AccessByPermission = tabledata "Qlty. Inspection Header" = I; Caption = 'Create Inspection'; ToolTip = 'Specifies to create a new Quality Inspection.'; - Image = CreateForm; + Image = BulletList; Promoted = true; PromotedCategory = Process; PromotedIsBig = true; @@ -464,7 +464,7 @@ page 20408 "Qlty. Inspection List" Caption = 'Non Conformance Report'; Enabled = RowActionsAreEnabled; ToolTip = 'Specifies the Non Conformance Report has a layout suitable for quality inspection templates that typically contain Non Conformance Report questions.'; - Image = PrintReport; + Image = Report; Promoted = true; PromotedIsBig = true; PromotedOnly = true; @@ -485,7 +485,7 @@ page 20408 "Qlty. Inspection List" Caption = 'Inspection Report'; Enabled = RowActionsAreEnabled; ToolTip = 'General purpose inspection report.'; - Image = PrintReport; + Image = Report; Promoted = true; PromotedIsBig = true; PromotedOnly = true; @@ -550,12 +550,13 @@ page 20408 "Qlty. Inspection List" QltyDocumentNavigation.NavigateToFindEntries(Rec); end; } +#pragma warning disable AS0031 group(ItemAvailabilityBy) { Caption = 'Item Availability by'; Enabled = RowActionsAreEnabled; Image = ItemAvailability; - action(tItemAvailabilityByEvent) + action(ItemAvailabilityByEvent) { ApplicationArea = Suite; Caption = 'Event'; @@ -572,7 +573,7 @@ page 20408 "Qlty. Inspection List" AvailItemAvailabilityFormsMgt.ShowItemAvailabilityFromItem(Item, "Item Availability Type"::"Event"); end; } - action(Period) + action(ItemAvailabilityByPeriod) { ApplicationArea = Suite; Caption = 'Period'; @@ -584,7 +585,7 @@ page 20408 "Qlty. Inspection List" "Variant Filter" = field("Source Variant Code"); ToolTip = 'Show the projected quantity of the item over time according to time periods, such as day, week, or month.'; } - action(Variant) + action(ItemAvailabilityByVariant) { ApplicationArea = Planning; Caption = 'Variant'; @@ -596,7 +597,7 @@ page 20408 "Qlty. Inspection List" "Variant Filter" = field("Source Variant Code"); ToolTip = 'View the current and projected quantity of the item for each variant.'; } - action(Location) + action(ItemAvailabilityByLocation) { ApplicationArea = Suite; Caption = 'Location'; @@ -608,7 +609,7 @@ page 20408 "Qlty. Inspection List" "Variant Filter" = field("Source Variant Code"); ToolTip = 'View the actual and projected quantity of the item per location.'; } - action(Lot) + action(ItemAvailabilityByLot) { ApplicationArea = ItemTracking; Caption = 'Lot'; @@ -618,7 +619,7 @@ page 20408 "Qlty. Inspection List" RunPageLink = "No." = field("Source Item No."); ToolTip = 'View the current and projected quantity of the item for each lot.'; } - action(BinContents) + action(ItemAvailabilityByBinContents) { ApplicationArea = Warehouse; Caption = 'Bin Contents'; @@ -630,6 +631,7 @@ page 20408 "Qlty. Inspection List" ToolTip = 'View the quantities of the item in each bin where it exists. You can see all the important parameters relating to bin content, and you can modify certain bin content parameters in this window.'; } } +#pragma warning restore AS0031 } } From c052cb477f415fd0f2908db626368417792f2688 Mon Sep 17 00:00:00 2001 From: Dusan Jakovljevic <134404137+JakovljevicDusan@users.noreply.github.com> Date: Fri, 27 Mar 2026 08:10:00 +0100 Subject: [PATCH 3/9] From Change the link displayed on the QM setup guide #7312 --- .../QltyManagementSetupGuide.Page.al | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/Apps/W1/Quality Management/app/src/Setup/SetupGuide/QltyManagementSetupGuide.Page.al b/src/Apps/W1/Quality Management/app/src/Setup/SetupGuide/QltyManagementSetupGuide.Page.al index 43cac6e6d9..8c50d72941 100644 --- a/src/Apps/W1/Quality Management/app/src/Setup/SetupGuide/QltyManagementSetupGuide.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Setup/SetupGuide/QltyManagementSetupGuide.Page.al @@ -4,7 +4,6 @@ // ------------------------------------------------------------------------------------------------ namespace Microsoft.QualityManagement.Setup.SetupGuide; -using Microsoft.QualityManagement.RoleCenters; using Microsoft.QualityManagement.Setup.ApplicationAreas; using Microsoft.QualityManagement.Utilities; using System.Environment; @@ -54,22 +53,18 @@ page 20438 "Qlty. Management Setup Guide" group(LetsGoText) { Caption = 'Let''s go!'; - InstructionalText = 'Select the link below to open the Quality Manager Role Center in a new browser tab and follow the guided tours.'; + InstructionalText = 'Select the link below to open the Quality Manager Role Center and follow the guided tours.'; } - field(LetsGoLink; LetsGoLinkLbl) + field(SettingsLink; SettingsLinkLbl) { - Caption = 'Open the Quality Manager Role Center'; + Caption = 'Open My Settings'; ShowCaption = false; - ToolTip = 'Open Quality Management Role Center and checklist in a new browser tab.'; + ToolTip = 'Open My Settings'; Editable = false; - ApplicationArea = QualityManagement; trigger OnDrillDown() - var - TargetURL: Text; begin - TargetURL := GetUrl(ClientType::Web, CompanyName, ObjectType::Page, Page::"Qlty. Manager Role Center") + URLProfileLbl; - Hyperlink(TargetURL); + Page.Run(Page::"User Settings"); end; } @@ -81,17 +76,17 @@ page 20438 "Qlty. Management Setup Guide" { area(Processing) { - action(Finish) + action(Done) { ApplicationArea = QualityManagement; - Caption = 'Finish'; - ToolTip = 'Finish'; + Caption = 'Done'; + ToolTip = 'Done'; InFooterBar = true; - Image = Approve; + Image = Close; trigger OnAction(); begin - FinishAction(); + DoneAction(); end; } } @@ -104,8 +99,7 @@ page 20438 "Qlty. Management Setup Guide" TopBannerVisible: Boolean; MainPageVisible: Boolean; QualityManagementTok: Label 'Quality Management', Locked = true; - LetsGoLinkLbl: Label 'Open the Quality Manager Role Center'; - URLProfileLbl: Label '&profile=QLTY.%20MANAGER', Locked = true; + SettingsLinkLbl: Label 'Open My Settings'; trigger OnInit(); begin @@ -118,7 +112,7 @@ page 20438 "Qlty. Management Setup Guide" FeatureTelemetry.LogUptake('0000QIC', QualityManagementTok, Enum::"Feature Uptake Status"::Discovered); end; - local procedure FinishAction(); + local procedure DoneAction(); var GuidedExperience: Codeunit "Guided Experience"; QltyApplicationAreaMgmt: Codeunit "Qlty. Application Area Mgmt."; From eb94de6d56b92480edfab4cf684f51cca588567f Mon Sep 17 00:00:00 2001 From: Dusan Jakovljevic <134404137+JakovljevicDusan@users.noreply.github.com> Date: Fri, 27 Mar 2026 08:18:58 +0100 Subject: [PATCH 4/9] Update packages.json --- build/Packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Packages.json b/build/Packages.json index 515b180a54..bb3633dd47 100644 --- a/build/Packages.json +++ b/build/Packages.json @@ -4,7 +4,7 @@ "Source": "NuGet.org" }, "AppBaselines-BCArtifacts": { - "Version": "28.1.48062.X", + "Version": "28.1.48233.0", "Source": "BCArtifacts", "_comment": "Used to fetch app baselines from BC artifacts" } From 91ed6bd506649829d783e9c10cd9afb7cb03c7cf Mon Sep 17 00:00:00 2001 From: Dusan Jakovljevic <134404137+JakovljevicDusan@users.noreply.github.com> Date: Fri, 27 Mar 2026 14:09:07 +0100 Subject: [PATCH 5/9] Uptake build --- build/Packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Packages.json b/build/Packages.json index bb3633dd47..4c5b471cda 100644 --- a/build/Packages.json +++ b/build/Packages.json @@ -4,7 +4,7 @@ "Source": "NuGet.org" }, "AppBaselines-BCArtifacts": { - "Version": "28.1.48233.0", + "Version": "28.1.48281.0", "Source": "BCArtifacts", "_comment": "Used to fetch app baselines from BC artifacts" } From 8cb79f2590b749f4ec197319bcce65cc40bddf9e Mon Sep 17 00:00:00 2001 From: Dusan Jakovljevic <134404137+JakovljevicDusan@users.noreply.github.com> Date: Fri, 27 Mar 2026 21:06:29 +0100 Subject: [PATCH 6/9] Disable AS0031 and AS0032 --- .../app/src/Document/QltyInspection.Page.al | 2 ++ .../app/src/Document/QltyInspectionList.Page.al | 2 ++ .../src/Setup/SetupGuide/QltyManagementSetupGuide.Page.al | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/src/Apps/W1/Quality Management/app/src/Document/QltyInspection.Page.al b/src/Apps/W1/Quality Management/app/src/Document/QltyInspection.Page.al index eb0f2fc284..8e8f9e13f0 100644 --- a/src/Apps/W1/Quality Management/app/src/Document/QltyInspection.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Document/QltyInspection.Page.al @@ -732,6 +732,7 @@ page 20406 "Qlty. Inspection" end; } #pragma warning disable AS0031 +#pragma warning disable AS0032 group(ItemAvailabilityBy) { Caption = 'Item Availability by'; @@ -817,6 +818,7 @@ page 20406 "Qlty. Inspection" Rec.RunModalRelatedTransfers(); end; } +#pragma warning restore AS0032 #pragma warning restore AS0031 } } diff --git a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionList.Page.al b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionList.Page.al index ad4b69bcb7..718dee2eb9 100644 --- a/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionList.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Document/QltyInspectionList.Page.al @@ -551,6 +551,7 @@ page 20408 "Qlty. Inspection List" end; } #pragma warning disable AS0031 +#pragma warning disable AS0032 group(ItemAvailabilityBy) { Caption = 'Item Availability by'; @@ -631,6 +632,7 @@ page 20408 "Qlty. Inspection List" ToolTip = 'View the quantities of the item in each bin where it exists. You can see all the important parameters relating to bin content, and you can modify certain bin content parameters in this window.'; } } +#pragma warning restore AS0032 #pragma warning restore AS0031 } } diff --git a/src/Apps/W1/Quality Management/app/src/Setup/SetupGuide/QltyManagementSetupGuide.Page.al b/src/Apps/W1/Quality Management/app/src/Setup/SetupGuide/QltyManagementSetupGuide.Page.al index 8c50d72941..768422e3d1 100644 --- a/src/Apps/W1/Quality Management/app/src/Setup/SetupGuide/QltyManagementSetupGuide.Page.al +++ b/src/Apps/W1/Quality Management/app/src/Setup/SetupGuide/QltyManagementSetupGuide.Page.al @@ -55,6 +55,8 @@ page 20438 "Qlty. Management Setup Guide" Caption = 'Let''s go!'; InstructionalText = 'Select the link below to open the Quality Manager Role Center and follow the guided tours.'; } +#pragma warning disable AS0031 +#pragma warning disable AS0032 field(SettingsLink; SettingsLinkLbl) { Caption = 'Open My Settings'; @@ -68,6 +70,8 @@ page 20438 "Qlty. Management Setup Guide" end; } +#pragma warning restore AS0032 +#pragma warning restore AS0031 } } } @@ -76,6 +80,8 @@ page 20438 "Qlty. Management Setup Guide" { area(Processing) { +#pragma warning disable AS0031 +#pragma warning disable AS0032 action(Done) { ApplicationArea = QualityManagement; @@ -89,6 +95,8 @@ page 20438 "Qlty. Management Setup Guide" DoneAction(); end; } +#pragma warning restore AS0032 +#pragma warning restore AS0031 } } From b3b1962e4df1db9b0876844252406dd96b647ad7 Mon Sep 17 00:00:00 2001 From: Dusan Jakovljevic <134404137+JakovljevicDusan@users.noreply.github.com> Date: Fri, 27 Mar 2026 22:33:43 +0100 Subject: [PATCH 7/9] Update baseline version --- build/Packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Packages.json b/build/Packages.json index 4c5b471cda..9eb49dd2ad 100644 --- a/build/Packages.json +++ b/build/Packages.json @@ -4,7 +4,7 @@ "Source": "NuGet.org" }, "AppBaselines-BCArtifacts": { - "Version": "28.1.48281.0", + "Version": "28.1.48305.0", "Source": "BCArtifacts", "_comment": "Used to fetch app baselines from BC artifacts" } From 37b1b7f0a3df6924b6d99cd2a28ae48de90445fb Mon Sep 17 00:00:00 2001 From: Dusan Jakovljevic <134404137+JakovljevicDusan@users.noreply.github.com> Date: Sun, 29 Mar 2026 23:17:20 +0200 Subject: [PATCH 8/9] Update baseline version --- build/Packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Packages.json b/build/Packages.json index 9eb49dd2ad..60205dd2a1 100644 --- a/build/Packages.json +++ b/build/Packages.json @@ -4,7 +4,7 @@ "Source": "NuGet.org" }, "AppBaselines-BCArtifacts": { - "Version": "28.1.48305.0", + "Version": "28.1.48312.0", "Source": "BCArtifacts", "_comment": "Used to fetch app baselines from BC artifacts" } From 77c30698625339f8eb2682bfbbb0b9d058d56b93 Mon Sep 17 00:00:00 2001 From: Dusan Jakovljevic <134404137+JakovljevicDusan@users.noreply.github.com> Date: Mon, 30 Mar 2026 10:19:00 +0200 Subject: [PATCH 9/9] Uptake Subscription Billing object renaming --- .../App/Billing/Page Extensions/UserSetup.PageExt.al | 2 +- .../App/RoleCenters/AccPayableAdministratorRC.PageExt.al | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Apps/W1/Subscription Billing/App/Billing/Page Extensions/UserSetup.PageExt.al b/src/Apps/W1/Subscription Billing/App/Billing/Page Extensions/UserSetup.PageExt.al index b946a0234e..a8ea49d948 100644 --- a/src/Apps/W1/Subscription Billing/App/Billing/Page Extensions/UserSetup.PageExt.al +++ b/src/Apps/W1/Subscription Billing/App/Billing/Page Extensions/UserSetup.PageExt.al @@ -2,7 +2,7 @@ namespace Microsoft.SubscriptionBilling; using System.Security.User; -pageextension 8017 "User Setup" extends "User Setup" +pageextension 8015 "User Setup" extends "User Setup" { layout { diff --git a/src/Apps/W1/Subscription Billing/App/RoleCenters/AccPayableAdministratorRC.PageExt.al b/src/Apps/W1/Subscription Billing/App/RoleCenters/AccPayableAdministratorRC.PageExt.al index 8a76f7270e..1e562ab852 100644 --- a/src/Apps/W1/Subscription Billing/App/RoleCenters/AccPayableAdministratorRC.PageExt.al +++ b/src/Apps/W1/Subscription Billing/App/RoleCenters/AccPayableAdministratorRC.PageExt.al @@ -6,7 +6,7 @@ namespace Microsoft.SubscriptionBilling; using Microsoft.Finance.RoleCenters; -pageextension 8015 "Acc. Payable Administrator RC" extends "Acc. Payable Administrator RC" +pageextension 8017 "Acc. Payable Administrator RC" extends "Acc. Payable Administrator RC" { actions {