---
id: change/bcquality/65
type: change
title: "#65 Add data-modeling and appsource knowledge articles (MICROSOFT layer)"
summary: Seven remedial BCQuality knowledge articles added to the MICROSOFT layer covering data-modeling patterns, AppSource conventions, and styling best practices, with good and bad AL code examples for each.
tier: official
language: en
tags:
  - feature
  - main
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-08T02:13:12.353Z"
  flags: []
generated:
  at: "2026-10-08T01:26:53.141Z"
  pipeline: 0.2.0
  prompts:
    extract-change: 1
  input_hash: 766046b85deff8f3e94d6364c573b4df99a9c8a4
evidence:
  - kind: code
    url: https://github.com/microsoft/BCQuality/pull/65
    title: "microsoft/BCQuality#65: Add data-modeling and appsource knowledge articles (MICROSOFT layer)"
    date: "2026-07-13"
    commit: 766046b85deff8f3e94d6364c573b4df99a9c8a4
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes: []
number: 65
repo: microsoft/BCQuality
source_id: bcquality-prs
url: https://github.com/microsoft/BCQuality/pull/65
kind: pr
base_branch: main
major: null
merged_at: "2026-07-13T08:35:32Z"
author: JesperSchulz
author_type: User
community_contribution: false
labels: []
change_class: code
change_kind: feature
behavior_change: false
breaking: false
files:
  count: 21
  additions: 885
  deletions: 0
  al: 21
apps: []
objects_touched: []
objects_unjoined:
  - path: microsoft/knowledge/appsource/object-affixes-prevent-collisions.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/appsource/object-affixes-prevent-collisions.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/appsource/object-affixes-prevent-collisions.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/check-blocked-in-referencing-code-not-in-master.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/check-blocked-in-referencing-code-not-in-master.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/check-blocked-in-referencing-code-not-in-master.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/master-table-no-from-number-series-in-oninsert.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/master-table-no-from-number-series-in-oninsert.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/master-table-no-from-number-series-in-oninsert.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/set-last-date-modified-in-onmodify-and-onrename.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/set-last-date-modified-in-onmodify-and-onrename.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/set-last-date-modified-in-onmodify-and-onrename.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/setup-table-is-a-singleton.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/setup-table-is-a-singleton.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/setup-table-is-a-singleton.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/use-no-series-codeunit-not-noseriesmanagement.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/use-no-series-codeunit-not-noseriesmanagement.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/data-modeling/use-no-series-codeunit-not-noseriesmanagement.md
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/style/applicationarea-required-on-page-controls.bad.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/style/applicationarea-required-on-page-controls.good.al
    status: added
    reason: not-in-snapshot
  - path: microsoft/knowledge/style/applicationarea-required-on-page-controls.md
    status: added
    reason: not-in-snapshot
obsoletions: []
backports: []
fixes_issues: []
work_items: []
systems:
  - development
quote: null
joined_against:
  major: null
  commit: null
---

# #65 Add data-modeling and appsource knowledge articles (MICROSOFT layer)

> Seven remedial BCQuality knowledge articles added to the MICROSOFT layer covering data-modeling patterns, AppSource conventions, and styling best practices, with good and bad AL code examples for each.

[Pull request](https://github.com/microsoft/BCQuality/pull/65) · merged into `main` on 2026-07-13 by JesperSchulz · 21 files (+885 -0), 21 AL · feature · tier official · reviewed (checked by Opus)

## What changed

- Adds 7 knowledge articles on master-table numbering, the No. Series codeunit, singleton setup tables, Last Date Modified, Blocked checks, ApplicationArea and object affixes
- Creates two new domains, data-modeling and appsource; the ApplicationArea article goes in the existing style domain
- Each article has a markdown file plus paired good.al and bad.al samples
- Articles cite AppSourceCop rules AS0062 and AS0011 and recommend codeunit 310 No. Series over the obsolete-pending NoSeriesManagement (codeunit 396)
- Validation reports 199 articles in total with no errors

## AL objects touched

- `microsoft/knowledge/appsource/object-affixes-prevent-collisions.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/appsource/object-affixes-prevent-collisions.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/appsource/object-affixes-prevent-collisions.md`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/check-blocked-in-referencing-code-not-in-master.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/check-blocked-in-referencing-code-not-in-master.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/check-blocked-in-referencing-code-not-in-master.md`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/master-table-no-from-number-series-in-oninsert.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/master-table-no-from-number-series-in-oninsert.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/master-table-no-from-number-series-in-oninsert.md`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/set-last-date-modified-in-onmodify-and-onrename.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/set-last-date-modified-in-onmodify-and-onrename.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/set-last-date-modified-in-onmodify-and-onrename.md`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/setup-table-is-a-singleton.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/setup-table-is-a-singleton.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/setup-table-is-a-singleton.md`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/use-no-series-codeunit-not-noseriesmanagement.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/use-no-series-codeunit-not-noseriesmanagement.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/data-modeling/use-no-series-codeunit-not-noseriesmanagement.md`: added, not in the BC? snapshot yet
- `microsoft/knowledge/style/applicationarea-required-on-page-controls.bad.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/style/applicationarea-required-on-page-controls.good.al`: added, not in the BC? snapshot yet
- `microsoft/knowledge/style/applicationarea-required-on-page-controls.md`: added, not in the BC? snapshot yet

## Context

- Systems: development

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