---
id: change/bcapps/11036
type: change
title: "#11036 Ruleset hardening: promote four compatibility rules to Error"
summary: 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.
tier: official
language: en
tags:
  - other
  - main
  - bc30
  - permissionsetextension d365 basic isv - intrastat cz
  - permissionsetextension d365 basic - intrastat cz
  - permissionsetextension d365 read - intrastat cz
  - permissionsetextension d365 team member - intr. cz
  - permissionsetextension intelligent cloud - intr. cz
  - permissionsetextension local - intrastat cz
system: finance
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:06:16.324Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: 3f8e11d3ab29b343f220d22d561f7e8363549f60
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/pull/11036
    title: "microsoft/BCApps#11036: Ruleset hardening: promote four compatibility rules to Error"
    date: "2026-09-07"
    commit: 3f8e11d3ab29b343f220d22d561f7e8363549f60
    t: null
    quote: null
links:
  learn: []
  objects:
    - object/permissionsetextension/31303-cz
    - object/permissionsetextension/31302-cz
    - object/permissionsetextension/31304-cz
    - object/permissionsetextension/31305-cz
    - object/permissionsetextension/31306-cz
    - object/permissionsetextension/31301-cz
    - object/page/18143-in
    - object/page/18142-in
    - object/page/18165-in
    - object/page/18162-in
    - object/page/18013-in
    - object/table/18475-in
    - object/permissionsetextension/18355-in
    - object/enumextension/18548-in
    - object/permissionsetextension/5503
    - object/permissionsetextension/20766
    - object/table/46898
    - object/permissionsetextension/7234
    - object/permissionsetextension/7233
    - object/permissionsetextension/7235
    - object/permissionsetextension/7236
    - object/permissionsetextension/7237
    - object/permissionsetextension/7238
    - object/permissionsetextension/7240
    - object/permissionsetextension/7239
    - object/page/1070
    - object/page/1071
    - object/permissionsetextension/22217
    - object/permissionsetextension/22216
    - object/permissionsetextension/22215
    - object/permissionsetextension/22214
    - object/permissionsetextension/22213
    - object/permissionsetextension/22212
    - object/table/28090-au
    - object/table/1207
    - object/page/3010543-ch
    - object/page/1
    - object/page/1803
    - object/enumextension/5825
    - object/page/1308
    - object/permissionsetextension/649
    - object/page/8629
    - object/page/2123
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 11036
repo: microsoft/BCApps
source_id: bcapps-prs
url: https://github.com/microsoft/BCApps/pull/11036
kind: pr
base_branch: main
major: "30"
merged_at: "2026-09-07T14:25:42Z"
author: JesperSchulz
author_type: User
community_contribution: false
labels:
  - "AL: Apps (W1)"
  - "Ownership: Needs Review"
  - "Team: Other"
change_class: code
change_kind: other
behavior_change: false
breaking: false
files:
  count: 64
  additions: 126
  deletions: 19
  al: 63
apps:
  - APIV1
  - APIV2
  - Base Application
  - HybridBC14
  - INGST
  - INTaxBase
  - IntrastatCZ
  - MasterDataManagement
  - PayPalPaymentsStandard
  - ReviewGLEntries
objects_touched:
  - key: permissionsetextension/31303
    page: permissionsetextension/31303-cz
    type: permissionsetextension
    id: 31303
    name: D365 BASIC ISV - Intrastat CZ
    app: IntrastatCZ
    status: modified
  - key: permissionsetextension/31302
    page: permissionsetextension/31302-cz
    type: permissionsetextension
    id: 31302
    name: D365 BASIC - Intrastat CZ
    app: IntrastatCZ
    status: modified
  - key: permissionsetextension/31304
    page: permissionsetextension/31304-cz
    type: permissionsetextension
    id: 31304
    name: D365 READ - Intrastat CZ
    app: IntrastatCZ
    status: modified
  - key: permissionsetextension/31305
    page: permissionsetextension/31305-cz
    type: permissionsetextension
    id: 31305
    name: D365 TEAM MEMBER - Intr. CZ
    app: IntrastatCZ
    status: modified
  - key: permissionsetextension/31306
    page: permissionsetextension/31306-cz
    type: permissionsetextension
    id: 31306
    name: INTELLIGENT CLOUD - Intr. CZ
    app: IntrastatCZ
    status: modified
  - key: permissionsetextension/31301
    page: permissionsetextension/31301-cz
    type: permissionsetextension
    id: 31301
    name: LOCAL - Intrastat CZ
    app: IntrastatCZ
    status: modified
  - key: page/18143
    page: page/18143-in
    type: page
    id: 18143
    name: Sales Cr Memo QR Code
    app: INGST
    status: modified
  - key: page/18142
    page: page/18142-in
    type: page
    id: 18142
    name: Sales Invoice QR Code
    app: INGST
    status: modified
  - key: page/18165
    page: page/18165-in
    type: page
    id: 18165
    name: Service Cr Memo QR Code
    app: INGST
    status: modified
  - key: page/18162
    page: page/18162-in
    type: page
    id: 18162
    name: Service Invoice QR Code
    app: INGST
    status: modified
  - key: page/18013
    page: page/18013-in
    type: page
    id: 18013
    name: Transfer Shipment QR Code
    app: INGST
    status: modified
  - key: table/18475
    page: table/18475-in
    type: table
    id: 18475
    name: Sub. Comp. Rcpt. Line
    app: INGST
    status: modified
  - key: permissionsetextension/18355
    page: permissionsetextension/18355-in
    type: permissionsetextension
    id: 18355
    name: D365 READ - India GST
    app: INGST
    status: modified
  - key: enumextension/18548
    page: enumextension/18548-in
    type: enumextension
    id: 18548
    name: Voucher Enum
    app: INTaxBase
    status: modified
  - key: permissionsetextension/5503
    page: permissionsetextension/5503
    type: permissionsetextension
    id: 5503
    name: D365 AUTOMATION - APIV1
    app: APIV1
    status: modified
  - key: permissionsetextension/20766
    page: permissionsetextension/20766
    type: permissionsetextension
    id: 20766
    name: D365 AUTOMATION - APIV2
    app: APIV2
    status: modified
  - key: table/46898
    page: table/46898
    type: table
    id: 46898
    name: BC14 Inventory Posting Setup
    app: HybridBC14
    status: modified
  - key: permissionsetextension/7234
    page: permissionsetextension/7234
    type: permissionsetextension
    id: 7234
    name: D365 BASIC ISV - Master Data Mgt.
    app: MasterDataManagement
    status: modified
  - key: permissionsetextension/7233
    page: permissionsetextension/7233
    type: permissionsetextension
    id: 7233
    name: D365 BASIC - Master Data Mgt.
    app: MasterDataManagement
    status: modified
  - key: permissionsetextension/7235
    page: permissionsetextension/7235
    type: permissionsetextension
    id: 7235
    name: D365 BUS FULL ACCESS - Master Data Mgt.
    app: MasterDataManagement
    status: modified
  - key: permissionsetextension/7236
    page: permissionsetextension/7236
    type: permissionsetextension
    id: 7236
    name: D365 BUS PREMIUM - Master Data Mgt.
    app: MasterDataManagement
    status: modified
  - key: permissionsetextension/7237
    page: permissionsetextension/7237
    type: permissionsetextension
    id: 7237
    name: D365 FULL ACCESS - Master Data Mgt.
    app: MasterDataManagement
    status: modified
  - key: permissionsetextension/7238
    page: permissionsetextension/7238
    type: permissionsetextension
    id: 7238
    name: D365 READ - Master Data Mgt.
    app: MasterDataManagement
    status: modified
  - key: permissionsetextension/7240
    page: permissionsetextension/7240
    type: permissionsetextension
    id: 7240
    name: D365 TEAM MEMBER - Master Data Mgt.
    app: MasterDataManagement
    status: modified
  - key: permissionsetextension/7239
    page: permissionsetextension/7239
    type: permissionsetextension
    id: 7239
    name: INTELLIGENT CLOUD - Master Data Mgt.
    app: MasterDataManagement
    status: modified
  - key: page/1070
    page: page/1070
    type: page
    id: 1070
    name: MS - PayPal Standard Setup
    app: PayPalPaymentsStandard
    status: modified
  - key: page/1071
    page: page/1071
    type: page
    id: 1071
    name: MS - PayPal Standard Template
    app: PayPalPaymentsStandard
    status: modified
  - key: permissionsetextension/22217
    page: permissionsetextension/22217
    type: permissionsetextension
    id: 22217
    name: D365 BUS FULL ACCESS - Review G/L Entries
    app: ReviewGLEntries
    status: modified
  - key: permissionsetextension/22216
    page: permissionsetextension/22216
    type: permissionsetextension
    id: 22216
    name: D365 BUS PREMIUM - Review G/L Entries
    app: ReviewGLEntries
    status: modified
  - key: permissionsetextension/22215
    page: permissionsetextension/22215
    type: permissionsetextension
    id: 22215
    name: D365 FULL ACCESS - Review G/L Entries
    app: ReviewGLEntries
    status: modified
  - key: permissionsetextension/22214
    page: permissionsetextension/22214
    type: permissionsetextension
    id: 22214
    name: D365 READ - Review G/L Entries
    app: ReviewGLEntries
    status: modified
  - key: permissionsetextension/22213
    page: permissionsetextension/22213
    type: permissionsetextension
    id: 22213
    name: D365 TEAM MEMBER - Review G/L Entries
    app: ReviewGLEntries
    status: modified
  - key: permissionsetextension/22212
    page: permissionsetextension/22212
    type: permissionsetextension
    id: 22212
    name: INTELLIGENT CLOUD - Review G/L Entries
    app: ReviewGLEntries
    status: modified
  - key: table/28090
    page: table/28090-au
    type: table
    id: 28090
    name: Post Dated Check Line
    app: Base Application
    status: modified
  - key: table/1207
    page: table/1207
    type: table
    id: 1207
    name: Direct Debit Collection
    app: Base Application
    status: modified
  - key: page/3010543
    page: page/3010543-ch
    type: page
    id: 3010543
    name: DTA EZAG Pictures
    app: Base Application
    status: modified
  - key: page/1
    page: page/1
    type: page
    id: 1
    name: Company Information
    app: Base Application
    status: modified
  - key: page/1803
    page: page/1803
    type: page
    id: 1803
    name: Assisted Company Setup Wizard
    app: Base Application
    status: modified
  - key: enumextension/5825
    page: enumextension/5825
    type: enumextension
    id: 5825
    name: Marketing Text Scenario
    app: Base Application
    status: modified
  - key: page/1308
    page: page/1308
    type: page
    id: 1308
    name: O365 Device Setup
    app: Base Application
    status: modified
  - key: permissionsetextension/649
    page: permissionsetextension/649
    type: permissionsetextension
    id: 649
    name: Reten. Pol. Admin - BaseApp
    app: Base Application
    status: modified
  - key: page/8629
    page: page/8629
    type: page
    id: 8629
    name: Config. Wizard
    app: Base Application
    status: modified
  - key: page/2123
    page: page/2123
    type: page
    id: 2123
    name: O365 Incoming Doc. Att. Pict.
    app: Base Application
    status: modified
objects_unjoined:
  - path: src/Layers/APAC/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/AT/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/BE/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/CH/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/DACH/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/DE/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/ES/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/FI/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/FR/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/GB/BaseApp/Utilities/AssistedCompanySetupWizard.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/IS/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/IT/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/NA/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/NL/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/NO/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/NZ/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/RU/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/SE/BaseApp/Foundation/Company/CompanyInformation.Page.al
    status: modified
    reason: not-in-snapshot
obsoletions: []
backports: []
fixes_issues: []
work_items:
  - 640773
systems:
  - finance
  - integration
  - development
  - platform
  - administration
  - inventory
quote: null
joined_against:
  major: "30"
  commit: f18567dc08e2bd162bf192e1da4d714b57eb099f
---

# #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.

[Pull request](https://github.com/microsoft/BCApps/pull/11036) · 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"](../../objects/permissionsetextension/31303-cz.md), IntrastatCZ (CZ layer): modified
- [Permission set extension 31302 "D365 BASIC - Intrastat CZ"](../../objects/permissionsetextension/31302-cz.md), IntrastatCZ (CZ layer): modified
- [Permission set extension 31304 "D365 READ - Intrastat CZ"](../../objects/permissionsetextension/31304-cz.md), IntrastatCZ (CZ layer): modified
- [Permission set extension 31305 "D365 TEAM MEMBER - Intr. CZ"](../../objects/permissionsetextension/31305-cz.md), IntrastatCZ (CZ layer): modified
- [Permission set extension 31306 "INTELLIGENT CLOUD - Intr. CZ"](../../objects/permissionsetextension/31306-cz.md), IntrastatCZ (CZ layer): modified
- [Permission set extension 31301 "LOCAL - Intrastat CZ"](../../objects/permissionsetextension/31301-cz.md), IntrastatCZ (CZ layer): modified
- [Page 18143 "Sales Cr Memo QR Code"](../../objects/page/18143-in.md), INGST (IN layer): modified
- [Page 18142 "Sales Invoice QR Code"](../../objects/page/18142-in.md), INGST (IN layer): modified
- [Page 18165 "Service Cr Memo QR Code"](../../objects/page/18165-in.md), INGST (IN layer): modified
- [Page 18162 "Service Invoice QR Code"](../../objects/page/18162-in.md), INGST (IN layer): modified
- [Page 18013 "Transfer Shipment QR Code"](../../objects/page/18013-in.md), INGST (IN layer): modified
- [Table 18475 "Sub. Comp. Rcpt. Line"](../../objects/table/18475-in.md), INGST (IN layer): modified
- [Permission set extension 18355 "D365 READ - India GST"](../../objects/permissionsetextension/18355-in.md), INGST (IN layer): modified
- [Enum extension 18548 "Voucher Enum"](../../objects/enumextension/18548-in.md), INTaxBase (IN layer): modified
- [Permission set extension 5503 "D365 AUTOMATION - APIV1"](../../objects/permissionsetextension/5503.md), APIV1: modified
- [Permission set extension 20766 "D365 AUTOMATION - APIV2"](../../objects/permissionsetextension/20766.md), APIV2: modified
- [Table 46898 "BC14 Inventory Posting Setup"](../../objects/table/46898.md), HybridBC14: modified
- [Permission set extension 7234 "D365 BASIC ISV - Master Data Mgt."](../../objects/permissionsetextension/7234.md), MasterDataManagement: modified
- [Permission set extension 7233 "D365 BASIC - Master Data Mgt."](../../objects/permissionsetextension/7233.md), MasterDataManagement: modified
- [Permission set extension 7235 "D365 BUS FULL ACCESS - Master Data Mgt."](../../objects/permissionsetextension/7235.md), MasterDataManagement: modified
- [Permission set extension 7236 "D365 BUS PREMIUM - Master Data Mgt."](../../objects/permissionsetextension/7236.md), MasterDataManagement: modified
- [Permission set extension 7237 "D365 FULL ACCESS - Master Data Mgt."](../../objects/permissionsetextension/7237.md), MasterDataManagement: modified
- [Permission set extension 7238 "D365 READ - Master Data Mgt."](../../objects/permissionsetextension/7238.md), MasterDataManagement: modified
- [Permission set extension 7240 "D365 TEAM MEMBER - Master Data Mgt."](../../objects/permissionsetextension/7240.md), MasterDataManagement: modified
- [Permission set extension 7239 "INTELLIGENT CLOUD - Master Data Mgt."](../../objects/permissionsetextension/7239.md), MasterDataManagement: modified
- [Page 1070 "MS - PayPal Standard Setup"](../../objects/page/1070.md), PayPalPaymentsStandard: modified
- [Page 1071 "MS - PayPal Standard Template"](../../objects/page/1071.md), PayPalPaymentsStandard: modified
- [Permission set extension 22217 "D365 BUS FULL ACCESS - Review G/L Entries"](../../objects/permissionsetextension/22217.md), ReviewGLEntries: modified
- [Permission set extension 22216 "D365 BUS PREMIUM - Review G/L Entries"](../../objects/permissionsetextension/22216.md), ReviewGLEntries: modified
- [Permission set extension 22215 "D365 FULL ACCESS - Review G/L Entries"](../../objects/permissionsetextension/22215.md), ReviewGLEntries: modified
- [Permission set extension 22214 "D365 READ - Review G/L Entries"](../../objects/permissionsetextension/22214.md), ReviewGLEntries: modified
- [Permission set extension 22213 "D365 TEAM MEMBER - Review G/L Entries"](../../objects/permissionsetextension/22213.md), ReviewGLEntries: modified
- [Permission set extension 22212 "INTELLIGENT CLOUD - Review G/L Entries"](../../objects/permissionsetextension/22212.md), ReviewGLEntries: modified
- [Table 28090 "Post Dated Check Line"](../../objects/table/28090-au.md), Base Application (AU layer): modified
- [Table 1207 "Direct Debit Collection"](../../objects/table/1207.md), Base Application (BE layer): modified
- [Page 3010543 "DTA EZAG Pictures"](../../objects/page/3010543-ch.md), Base Application (CH layer): modified
- [Page 1 "Company Information"](../../objects/page/1.md), Base Application: modified
- [Page 1803 "Assisted Company Setup Wizard"](../../objects/page/1803.md), Base Application: modified
- [Enum extension 5825 "Marketing Text Scenario"](../../objects/enumextension/5825.md), Base Application: modified
- [Page 1308 "O365 Device Setup"](../../objects/page/1308.md), Base Application: modified
- [Permission set extension 649 "Reten. Pol. Admin - BaseApp"](../../objects/permissionsetextension/649.md), Base Application: modified
- [Page 8629 "Config. Wizard"](../../objects/page/8629.md), Base Application: modified
- [Page 2123 "O365 Incoming Doc. Att. Pict."](../../objects/page/2123.md), Base Application: modified
- `src/Layers/APAC/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/AT/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/BE/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/CH/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/DACH/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/DE/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/ES/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/FI/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/FR/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/GB/BaseApp/Utilities/AssistedCompanySetupWizard.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/IS/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/IT/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/NA/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/NL/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/NO/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/NZ/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/Layers/RU/BaseApp/Foundation/Company/CompanyInformation.Page.al`: modified, not in the BC30 snapshot
- `src/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).
