---
id: change/bcquality/207
type: change
title: "#207 2 AL/BC UI patterns: client-expression in-list (AL0573) and Role Center AccessByPermission"
summary: Two new UI knowledge articles were added. One covers in-list set-membership tests in client expressions such as Visible or Enabled on actions, groups and parts, which only raise warning AL0573. The other covers using AccessByPermission for permission gating on Role Centers, where triggers and procedures are not allowed.
tier: official
language: en
tags:
  - feature
  - main
system: platform
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:02:45.616Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: 0867171b1a71ab6fb58fe98134774f8e6b3517ae
evidence:
  - kind: code
    url: https://github.com/microsoft/BCQuality/pull/207
    title: "microsoft/BCQuality#207: 2 AL/BC UI patterns: client-expression in-list (AL0573) and Role Center AccessByPermission"
    date: "2026-10-02"
    commit: 0867171b1a71ab6fb58fe98134774f8e6b3517ae
    t: null
    quote: AL0573, a warning that will become an error in a future release, so it builds and ships.
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 207
repo: microsoft/BCQuality
source_id: bcquality-prs
url: https://github.com/microsoft/BCQuality/pull/207
kind: pr
base_branch: main
major: null
merged_at: "2026-10-02T07:53:14Z"
author: MichaelDieringer
author_type: User
community_contribution: false
labels: []
change_class: code
change_kind: feature
behavior_change: false
breaking: false
files:
  count: 8
  additions: 257
  deletions: 2
  al: 7
apps: []
objects_touched: []
objects_unjoined:
  - path: microsoft/knowledge/ui/page-client-expression-must-not-use-in-list.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/ui/page-client-expression-must-not-use-in-list.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/ui/page-client-expression-must-not-use-in-list.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/ui/rolecenter-permission-gating-must-use-accessbypermission.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/ui/rolecenter-permission-gating-must-use-accessbypermission.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/ui/rolecenter-permission-gating-must-use-accessbypermission.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/skills/review/al-ui-review.md
    status: modified
    reason: not-in-snapshot
obsoletions: []
backports: []
fixes_issues: []
work_items: []
systems:
  - platform
  - development
quote: AL0573, a warning that will become an error in a future release, so it builds and ships.
joined_against:
  major: null
  commit: null
---

# #207 2 AL/BC UI patterns: client-expression in-list (AL0573) and Role Center AccessByPermission

> Two new UI knowledge articles were added. One covers in-list set-membership tests in client expressions such as Visible or Enabled on actions, groups and parts, which only raise warning AL0573. The other covers using AccessByPermission for permission gating on Role Centers, where triggers and procedures are not allowed.

[Pull request](https://github.com/microsoft/BCQuality/pull/207) · merged into `main` on 2026-10-02 by MichaelDieringer · 8 files (+257 -2), 7 AL · feature · tier official · reviewed (checked by Opus)

## What changed

- In-list tests in Enabled/Visible/Editable/StyleExpr are an error on fields (AL0322) but only warning AL0573 on actions, groups and parts
- Remediation: an or-chain, or a global Boolean recomputed in OnAfterGetCurrRecord and OnValidate; plain comparisons stay valid
- Role Centers cannot have triggers (AL0378) or procedures (AL0569), so AccessByPermission on parts, actions and fields is the declarative fix for permission gating
- AccessByPermission removes UI elements and is not a security boundary; setup or feature-flag gating is out of scope
- al-ui-review.md gains tokens and mappings, and both articles are registered in review-fixtures.json

## AL objects touched

- `microsoft/knowledge/ui/page-client-expression-must-not-use-in-list.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/ui/page-client-expression-must-not-use-in-list.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/ui/page-client-expression-must-not-use-in-list.md`: added, not in the BC? snapshot yet
- `microsoft/knowledge/ui/rolecenter-permission-gating-must-use-accessbypermission.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/ui/rolecenter-permission-gating-must-use-accessbypermission.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/ui/rolecenter-permission-gating-must-use-accessbypermission.md`: added, not in the BC? snapshot yet
- `microsoft/skills/review/al-ui-review.md`: modified, not in the BC? snapshot

## Context

- Systems: platform, development
- From the description: "AL0573, a warning that will become an error in a future release, so it builds and ships."

Source: metadata of a merged pull request in microsoft/BCQuality (bcquality): title, labels, changed paths and counts, with a summary in our words. No source text and no description beyond one short quote (D10, D61).
