---
id: change/bcapps/11160
type: change
title: "#11160 Ruleset hardening: promote three mechanical rules to Error"
summary: The BCApps base ruleset now treats AL0606, AA0161 and AA0448 as errors instead of warnings. Code across apps and layers was updated to remove deprecated with statements, narrowly scope intentional AssertError uses, and show localized captions instead of technical field and table names in messages.
tier: official
language: en
tags:
  - refactor
  - main
  - bc30
  - codeunit diot - initialize
  - codeunit diot data management
  - codeunit diot subscribers
  - codeunit integration master data synch.
  - codeunit master data mgt. setup default
  - table gen. journal line
system: finance
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:06:00.681Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: 56ccdb87d79571fae5ace4b08bf4f1a1f04c54e1
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/pull/11160
    title: "microsoft/BCApps#11160: Ruleset hardening: promote three mechanical rules to Error"
    date: "2026-09-09"
    commit: 56ccdb87d79571fae5ace4b08bf4f1a1f04c54e1
    t: null
    quote: null
links:
  learn: []
  objects:
    - object/codeunit/27020-ca
    - object/codeunit/27021-ca
    - object/codeunit/27022-ca
    - object/codeunit/7231
    - object/codeunit/7230
    - object/table/81
    - object/codeunit/17100-au
    - object/table/36
    - object/codeunit/103
    - object/table/15
    - object/table/98
    - object/report/6653
    - object/report/10092-ca
    - object/codeunit/816
    - object/codeunit/815
    - object/codeunit/5639
    - object/codeunit/1280
    - object/table/472
    - object/page/1824
    - object/table/1513
    - object/codeunit/10
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 11160
repo: microsoft/BCApps
source_id: bcapps-prs
url: https://github.com/microsoft/BCApps/pull/11160
kind: pr
base_branch: main
major: "30"
merged_at: "2026-09-09T09:34:20Z"
author: JesperSchulz
author_type: User
community_contribution: false
labels:
  - "AL: Apps (W1)"
  - "Ownership: Needs Review"
  - "Team: Other"
change_class: code
change_kind: refactor
behavior_change: true
breaking: false
files:
  count: 48
  additions: 506
  deletions: 277
  al: 23
apps:
  - Base Application
  - MX_DIOT
  - MasterDataManagement
objects_touched:
  - key: codeunit/27020
    page: codeunit/27020-ca
    type: codeunit
    id: 27020
    name: DIOT - Initialize
    app: MX_DIOT
    status: modified
  - key: codeunit/27021
    page: codeunit/27021-ca
    type: codeunit
    id: 27021
    name: DIOT Data Management
    app: MX_DIOT
    status: modified
  - key: codeunit/27022
    page: codeunit/27022-ca
    type: codeunit
    id: 27022
    name: DIOT Subscribers
    app: MX_DIOT
    status: modified
  - key: codeunit/7231
    page: codeunit/7231
    type: codeunit
    id: 7231
    name: Integration Master Data Synch.
    app: MasterDataManagement
    status: modified
  - key: codeunit/7230
    page: codeunit/7230
    type: codeunit
    id: 7230
    name: Master Data Mgt. Setup Default
    app: MasterDataManagement
    status: modified
  - key: table/81
    page: table/81
    type: table
    id: 81
    name: Gen. Journal Line
    app: Base Application
    status: modified
  - key: codeunit/17100
    page: codeunit/17100-au
    type: codeunit
    id: 17100
    name: Recurring Amount - Distribute
    app: Base Application
    status: modified
  - key: table/36
    page: table/36
    type: table
    id: 36
    name: Sales Header
    app: Base Application
    status: modified
  - key: codeunit/103
    page: codeunit/103
    type: codeunit
    id: 103
    name: Cust. Entry-Edit
    app: Base Application
    status: modified
  - key: table/15
    page: table/15
    type: table
    id: 15
    name: G/L Account
    app: Base Application
    status: modified
  - key: table/98
    page: table/98
    type: table
    id: 98
    name: General Ledger Setup
    app: Base Application
    status: modified
  - key: report/6653
    page: report/6653
    type: report
    id: 6653
    name: Combine Return Receipts
    app: Base Application
    status: modified
  - key: report/10092
    page: report/10092-ca
    type: report
    id: 10092
    name: Open Purchase Invoices by Job
    app: Base Application
    status: modified
  - key: codeunit/816
    page: codeunit/816
    type: codeunit
    id: 816
    name: Purch. Post Invoice
    app: Base Application
    status: modified
  - key: codeunit/815
    page: codeunit/815
    type: codeunit
    id: 815
    name: Sales Post Invoice
    app: Base Application
    status: modified
  - key: codeunit/5639
    page: codeunit/5639
    type: codeunit
    id: 5639
    name: FA Get Journal
    app: Base Application
    status: modified
  - key: codeunit/1280
    page: codeunit/1280
    type: codeunit
    id: 1280
    name: Map Currency Exchange Rate
    app: Base Application
    status: modified
  - key: table/472
    page: table/472
    type: table
    id: 472
    name: Job Queue Entry
    app: Base Application
    status: modified
  - key: page/1824
    page: page/1824
    type: page
    id: 1824
    name: Jobs Setup Wizard
    app: Base Application
    status: modified
  - key: table/1513
    page: table/1513
    type: table
    id: 1513
    name: Notification Schedule
    app: Base Application
    status: modified
  - key: codeunit/10
    page: codeunit/10
    type: codeunit
    id: 10
    name: Type Helper
    app: Base Application
    status: modified
objects_unjoined:
  - path: src/Layers/CH/BaseApp/Finance/Currency/MapCurrencyExchangeRate.Codeunit.al
    status: modified
    reason: not-in-snapshot
  - path: src/Layers/IT/BaseApp/Sales/Document/CombineShipments.Report.al
    status: modified
    reason: not-in-snapshot
obsoletions: []
backports: []
fixes_issues: []
work_items:
  - 640773
systems:
  - finance
  - sales
  - development
  - integration
  - projects
  - administration
  - fixed-assets
  - purchasing
quote: null
joined_against:
  major: "30"
  commit: f18567dc08e2bd162bf192e1da4d714b57eb099f
---

# #11160 Ruleset hardening: promote three mechanical rules to Error

> The BCApps base ruleset now treats AL0606, AA0161 and AA0448 as errors instead of warnings. Code across apps and layers was updated to remove deprecated with statements, narrowly scope intentional AssertError uses, and show localized captions instead of technical field and table names in messages.

[Pull request](https://github.com/microsoft/BCApps/pull/11160) · merged into `main` (BC30) on 2026-09-09 by JesperSchulz · 48 files (+506 -277), 23 AL · refactor · tier official · reviewed (checked by Opus)

## What changed

- AL0606: 17 deprecated with statements removed and record members qualified explicitly
- AA0161: 29 intentional AssertError uses in test libraries kept under narrow, documented pragma scopes
- AA0448: 50 FieldName/TableName expressions in displayed messages replaced with captions
- Ruleset entries drop from 72 to 69; AL0424 stays a warning
- New violations in the repository now fail compilation
- Behaviour changes for users or extensions.

## AL objects touched

- [Codeunit 27020 "DIOT - Initialize"](../../objects/codeunit/27020-ca.md), MX_DIOT (CA layer): modified
- [Codeunit 27021 "DIOT Data Management"](../../objects/codeunit/27021-ca.md), MX_DIOT (CA layer): modified
- [Codeunit 27022 "DIOT Subscribers"](../../objects/codeunit/27022-ca.md), MX_DIOT (CA layer): modified
- [Codeunit 7231 "Integration Master Data Synch."](../../objects/codeunit/7231.md), MasterDataManagement: modified
- [Codeunit 7230 "Master Data Mgt. Setup Default"](../../objects/codeunit/7230.md), MasterDataManagement: modified
- [Table 81 "Gen. Journal Line"](../../objects/table/81.md), Base Application (AU layer): modified
- [Codeunit 17100 "Recurring Amount - Distribute"](../../objects/codeunit/17100-au.md), Base Application (AU layer): modified
- [Table 36 "Sales Header"](../../objects/table/36.md), Base Application (AU layer): modified
- [Codeunit 103 "Cust. Entry-Edit"](../../objects/codeunit/103.md), Base Application (AU layer): modified
- [Table 15 "G/L Account"](../../objects/table/15.md), Base Application (ES layer): modified
- [Table 98 "General Ledger Setup"](../../objects/table/98.md), Base Application (ES layer): modified
- [Report 6653 "Combine Return Receipts"](../../objects/report/6653.md), Base Application (IT layer): modified
- [Report 10092 "Open Purchase Invoices by Job"](../../objects/report/10092-ca.md), Base Application (CA layer): modified
- [Codeunit 816 "Purch. Post Invoice"](../../objects/codeunit/816.md), Base Application (CA layer): modified
- [Codeunit 815 "Sales Post Invoice"](../../objects/codeunit/815.md), Base Application (CA layer): modified
- [Codeunit 5639 "FA Get Journal"](../../objects/codeunit/5639.md), Base Application (RU layer): modified
- [Codeunit 1280 "Map Currency Exchange Rate"](../../objects/codeunit/1280.md), Base Application: modified
- [Table 472 "Job Queue Entry"](../../objects/table/472.md), Base Application: modified
- [Page 1824 "Jobs Setup Wizard"](../../objects/page/1824.md), Base Application: modified
- [Table 1513 "Notification Schedule"](../../objects/table/1513.md), Base Application: modified
- [Codeunit 10 "Type Helper"](../../objects/codeunit/10.md), Base Application: modified
- `src/Layers/CH/BaseApp/Finance/Currency/MapCurrencyExchangeRate.Codeunit.al`: modified, not in the BC30 snapshot
- `src/Layers/IT/BaseApp/Sales/Document/CombineShipments.Report.al`: modified, not in the BC30 snapshot

## Context

- Work items: AB#640773
- Labels: AL: Apps (W1), Ownership: Needs Review, Team: Other
- Systems: finance, sales, development, integration, projects, administration, fixed-assets, purchasing

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