bcquality/microsoft/knowledge/style/intrinsic-al-functions-must-use-modern-casing.md
Michael Dieringer b983a6da57 Fix remaining READ-convention sample links across this PR's 18 articles
The same plain-backtick "See sample: \`x.good.al\`." form fixed on
al-methods-limited-during-write-transactions (PR #161) turned up
repo-wide on 15 more of this PR's articles - Knowledge-Retrieval.ps1
requires the markdown-link form to associate a sample with its
article. All 16 fixed; the four local validators (frontmatter,
knowledge-index, knowledge-retrieval, review-fixtures, skill-index)
pass.
2026-09-21 22:30:25 +02:00

1.9 KiB

bc-version domain keywords technologies countries application-area
all
style
casing
intrinsic-function
built-in-function
message
error
confirm
strsubstno
legacy
c-al
pascalcase
al
w1
all

Intrinsic AL function calls use modern casing, not legacy ALL-CAPS

Contributions welcome — open a PR to refine or extend this article.

Description

AL is case-insensitive, so MESSAGE(...), ERROR(...), CONFIRM(...), and STRSUBSTNO(...) compile and run identically to Message(...), Error(...), Confirm(...), and StrSubstNo(...). Modern AL — Microsoft's own current samples and current reference codebases — writes intrinsic/built-in function calls in the casing Microsoft assigns to the function's declared name, typically PascalCase. This is a codebase-convention claim, not a claim about what the VS Code formatter enforces: the formatter normalizes particular syntax but is not a mechanism for recasing every intrinsic function call, so do not cite formatter behavior as the reason to follow this convention. ALL-CAPS calls are a holdover from classic C/AL and signal code that has not been modernized, even though it compiles and runs correctly. Reserved keywords such as if, begin, and for are a separate, already-tooled concern; intrinsic function names are identifiers, not keywords, so that tooling does not catch ALL-CAPS intrinsic function calls.

Best Practice

Call intrinsic functions in their modern, PascalCase form.

See sample: intrinsic-al-functions-must-use-modern-casing.good.al.

Anti Pattern

ALL-CAPS intrinsic function calls trip no compiler error, but they are a reliable signal that a code block was copied from old C/AL material or outdated training content rather than written against current AL conventions.

See sample: intrinsic-al-functions-must-use-modern-casing.bad.al.