code change · featureAL Developmentofficial - Microsoftreviewed - checked by Opus

#156 18 AL/BC patterns: style, data-modeling, web-services, appsource, breaking-changes, performance, testing

Adds 17 AL/BC knowledge articles with good and bad samples across style, data modeling, web services, AppSource, breaking changes, performance and testing, and updates the matching review skills. The description lists a FlowFields web-services article that is not among the changed files.

Pull request · merged into main on 2026-09-29 by MichaelDieringer · 56 files (+1144 -3), 56 AL · feature · tier official · reviewed (checked by Opus)

What changed

  • 7 style articles: Boolean for binary choices, Enum over Integer, modern casing, addressable var parameters, namespace verification, English identifiers, build output location
  • 4 data modeling articles: DimensionManagement wiring, Check/Post Line/Post Batch split, primary key immutability, TestField on required setup fields
  • 2 web-services articles: keep consumer-provided key fields editable on insert, recalculate stored derived fields before exposing them via API
  • Single articles for AppSource (File data type is OnPrem-only), breaking changes (prefer the Email module), performance (Word layout) and testing (randomized complete data)
  • Review skills for each domain are updated to route to the new articles

AL objects touched

  • microsoft/knowledge/appsource/file-datatype-saas.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/appsource/file-datatype-saas.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/appsource/file-datatype-saas.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/breaking-changes/prefer-email-module.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/breaking-changes/prefer-email-module.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/breaking-changes/prefer-email-module.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/check-post-line-batch-pattern.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/check-post-line-batch-pattern.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/check-post-line-batch-pattern.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/dimension-management-wiring.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/dimension-management-wiring.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/dimension-management-wiring.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/do-not-change-primary-key.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/do-not-change-primary-key.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/do-not-change-primary-key.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/testfield-required-setup-field.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/testfield-required-setup-field.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/data-modeling/testfield-required-setup-field.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/performance/document-report-word-layout.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/performance/document-report-word-layout.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/performance/document-report-word-layout.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/al-build-output-must-not-pollute-project-root.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/al-identifiers-english.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/al-identifiers-english.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/al-identifiers-english.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/binary-choice-must-be-boolean.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/binary-choice-must-be-boolean.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/binary-choice-must-be-boolean.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/fixed-choice-set-must-use-enum-not-integer.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/fixed-choice-set-must-use-enum-not-integer.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/fixed-choice-set-must-use-enum-not-integer.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/intrinsic-al-functions-must-use-modern-casing.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/intrinsic-al-functions-must-use-modern-casing.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/intrinsic-al-functions-must-use-modern-casing.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/namespace-must-be-verified-from-source.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/namespace-must-be-verified-from-source.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/namespace-must-be-verified-from-source.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/var-parameters-require-an-addressable-variable.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/var-parameters-require-an-addressable-variable.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/style/var-parameters-require-an-addressable-variable.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/testing/test-data-must-be-random-and-complete.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/testing/test-data-must-be-random-and-complete.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/testing/test-data-must-be-random-and-complete.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/web-services/api-page-key-fields-must-be-editable-on-insert.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/web-services/api-page-key-fields-must-be-editable-on-insert.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/web-services/api-page-key-fields-must-be-editable-on-insert.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/web-services/stored-derived-fields-must-not-be-exposed-directly.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/web-services/stored-derived-fields-must-not-be-exposed-directly.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/web-services/stored-derived-fields-must-not-be-exposed-directly.md: added, not in the BC? snapshot yet
  • microsoft/skills/review/al-appsource-review.md: modified, not in the BC? snapshot
  • microsoft/skills/review/al-breaking-changes-review.md: modified, not in the BC? snapshot
  • microsoft/skills/review/al-data-modeling-review.md: modified, not in the BC? snapshot
  • microsoft/skills/review/al-performance-review.md: modified, not in the BC? snapshot
  • microsoft/skills/review/al-style-review.md: modified, not in the BC? snapshot
  • microsoft/skills/review/al-testing-review.md: modified, not in the BC? snapshot
  • microsoft/skills/review/al-web-services-review.md: modified, not in the BC? snapshot

Context

  • Systems: development
  • From the description: “18 knowledge articles generalized from patterns observed across real AppSource/PTE Business Central 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).