#11036 Ruleset hardening: promote four compatibility rules to Error
Four AL compatibility rules (AA0052, PTE0018, AS0099, AW0009) are promoted from warnings to errors in the ruleset by removing overrides and adding targeted pragmas to existing code that preserves compatibility-sensitive patterns.
- 64files
- 63AL files
- 43objects
Pull request · merged into main (BC30) on 2026-09-07 by JesperSchulz · 64 files (+126 -19), 63 AL · other · tier official · reviewed (checked by Opus)
What changed
- AA0052 and PTE0018 rules now error on cross-application permission-set inclusions, with 24 pragmas accepting existing compositions
- AS0099 promotes to error with 6 pragmas covering enum and field IDs where published IDs are preserved for backward compatibility
- AW0009 promotes to error with 33 pragmas on page fields backed by Blob/Bitmap types where Media conversion would require breaking schema changes
- Pragmas are narrowly scoped to actual violations found in analyzer diagnostics, not pattern-based scans
- Rule enforcement becomes stricter going forward, requiring contributors to avoid these patterns or justify narrowly-scoped exceptions
AL objects touched
- Permission set extension 31303 “D365 BASIC ISV - Intrastat CZ”, IntrastatCZ (CZ layer): modified
- Permission set extension 31302 “D365 BASIC - Intrastat CZ”, IntrastatCZ (CZ layer): modified
- Permission set extension 31304 “D365 READ - Intrastat CZ”, IntrastatCZ (CZ layer): modified
- Permission set extension 31305 “D365 TEAM MEMBER - Intr. CZ”, IntrastatCZ (CZ layer): modified
- Permission set extension 31306 “INTELLIGENT CLOUD - Intr. CZ”, IntrastatCZ (CZ layer): modified
- Permission set extension 31301 “LOCAL - Intrastat CZ”, IntrastatCZ (CZ layer): modified
- Page 18143 “Sales Cr Memo QR Code”, INGST (IN layer): modified
- Page 18142 “Sales Invoice QR Code”, INGST (IN layer): modified
- Page 18165 “Service Cr Memo QR Code”, INGST (IN layer): modified
- Page 18162 “Service Invoice QR Code”, INGST (IN layer): modified
- Page 18013 “Transfer Shipment QR Code”, INGST (IN layer): modified
- Table 18475 “Sub. Comp. Rcpt. Line”, INGST (IN layer): modified
- Permission set extension 18355 “D365 READ - India GST”, INGST (IN layer): modified
- Enum extension 18548 “Voucher Enum”, INTaxBase (IN layer): modified
- Permission set extension 5503 “D365 AUTOMATION - APIV1”, APIV1: modified
- Permission set extension 20766 “D365 AUTOMATION - APIV2”, APIV2: modified
- Table 46898 “BC14 Inventory Posting Setup”, HybridBC14: modified
- Permission set extension 7234 “D365 BASIC ISV - Master Data Mgt.”, MasterDataManagement: modified
- Permission set extension 7233 “D365 BASIC - Master Data Mgt.”, MasterDataManagement: modified
- Permission set extension 7235 “D365 BUS FULL ACCESS - Master Data Mgt.”, MasterDataManagement: modified
- Permission set extension 7236 “D365 BUS PREMIUM - Master Data Mgt.”, MasterDataManagement: modified
- Permission set extension 7237 “D365 FULL ACCESS - Master Data Mgt.”, MasterDataManagement: modified
- Permission set extension 7238 “D365 READ - Master Data Mgt.”, MasterDataManagement: modified
- Permission set extension 7240 “D365 TEAM MEMBER - Master Data Mgt.”, MasterDataManagement: modified
- Permission set extension 7239 “INTELLIGENT CLOUD - Master Data Mgt.”, MasterDataManagement: modified
- Page 1070 “MS - PayPal Standard Setup”, PayPalPaymentsStandard: modified
- Page 1071 “MS - PayPal Standard Template”, PayPalPaymentsStandard: modified
- Permission set extension 22217 “D365 BUS FULL ACCESS - Review G/L Entries”, ReviewGLEntries: modified
- Permission set extension 22216 “D365 BUS PREMIUM - Review G/L Entries”, ReviewGLEntries: modified
- Permission set extension 22215 “D365 FULL ACCESS - Review G/L Entries”, ReviewGLEntries: modified
- Permission set extension 22214 “D365 READ - Review G/L Entries”, ReviewGLEntries: modified
- Permission set extension 22213 “D365 TEAM MEMBER - Review G/L Entries”, ReviewGLEntries: modified
- Permission set extension 22212 “INTELLIGENT CLOUD - Review G/L Entries”, ReviewGLEntries: modified
- Table 28090 “Post Dated Check Line”, Base Application (AU layer): modified
- Table 1207 “Direct Debit Collection”, Base Application (BE layer): modified
- Page 3010543 “DTA EZAG Pictures”, Base Application (CH layer): modified
- Page 1 “Company Information”, Base Application: modified
- Page 1803 “Assisted Company Setup Wizard”, Base Application: modified
- Enum extension 5825 “Marketing Text Scenario”, Base Application: modified
- Page 1308 “O365 Device Setup”, Base Application: modified
- Permission set extension 649 “Reten. Pol. Admin - BaseApp”, Base Application: modified
- Page 8629 “Config. Wizard”, Base Application: modified
- Page 2123 “O365 Incoming Doc. Att. Pict.”, Base Application: modified
src/Layers/APAC/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/AT/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/BE/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/CH/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/DACH/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/DE/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/ES/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/FI/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/FR/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/GB/BaseApp/Utilities/AssistedCompanySetupWizard.Page.al: modified, not in the BC30 snapshotsrc/Layers/IS/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/IT/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/NA/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/NL/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/NO/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/NZ/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/RU/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshotsrc/Layers/SE/BaseApp/Foundation/Company/CompanyInformation.Page.al: modified, not in the BC30 snapshot
Context
- Work items: AB#640773
- Labels: AL: Apps (W1), Ownership: Needs Review, Team: Other
- Systems: finance, integration, development, platform, administration, inventory
Source: metadata of a merged pull request in microsoft/BCApps (bcapps): title, labels, changed paths and counts, with a summary in our words. No source text and no description beyond one short quote (D10, D61).