bcquality/microsoft/knowledge/style
Wenjie Fan 85ceaaa1a4
Some checks failed
Validate knowledge index / validate-index (push) Has been cancelled
Validate AL review fixtures / validate-review-fixtures (push) Has been cancelled
Validate frontmatter and structure / validate (push) Has been cancelled
knowledge(style): event subscribers bind by parameter name, so a shorter list is not a mismatch (#138)
* knowledge(style): allow event subscribers to omit trailing publisher parameters

The article told reviewers to copy the publisher signature exactly and reproduce every parameter verbatim. That contradicts events/add-new-event-parameters-at-the-end, which already states that existing subscribers bind to the leading parameters, and it produced a false positive on BCApps PR 10277 where a subscriber legitimately declared only the leading two of the publisher's three parameters.

Clarify that the name-match rule applies to every parameter the subscriber declares, state that AL binds on a leading prefix so trailing parameters may be omitted, and keep the real defect - a subscriber list that is not a prefix of the publisher's - as the anti pattern. Add the false-positive keyword for retrieval.

* fix: subscribers bind by parameter name, not by leading prefix

The first revision claimed AL binds a subscriber to a leading prefix of the publisher parameter list and that a parameter may not be skipped in the middle. That is wrong. Verified against shipping BCApps code: Test Runner - Mgt publishes OnBeforeTestMethodRun(var CurrentTestMethodLine; CodeunitID; CodeunitName; FunctionName; FunctionTestPermissions; var Skip), and ALTestRunnerResetEnvironment binds to it declaring (CodeunitID; CodeunitName; FunctionName; FunctionTestPermissions; var CurrentTestMethodLine) - omitting Skip and moving the first parameter to last. Binding is by name, so any subset in any order is valid. Detection now targets a parameter whose name or type matches nothing on the publisher.

---------

Co-authored-by: wenjiefan <wenjiefan@microsoft.com>
2026-08-28 11:07:05 +02:00
..
abouttitle-abouttext-teaching-tips.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
abouttitle-abouttext-teaching-tips.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
abouttitle-abouttext-teaching-tips.md Fix knowledge corpus integrity issues (#87) 2026-07-13 10:34:23 +02:00
api-page-camelcase-properties.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-camelcase-properties.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-camelcase-properties.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-delayedinsert-true.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-delayedinsert-true.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-delayedinsert-true.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-entity-naming-singular-plural.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-entity-naming-singular-plural.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-entity-naming-singular-plural.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-version-format.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-version-format.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
api-page-version-format.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
applicationarea-required-on-page-controls.bad.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
applicationarea-required-on-page-controls.good.al Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
applicationarea-required-on-page-controls.md Add data-modeling and appsource knowledge articles (MICROSOFT layer) (#65) 2026-07-13 10:35:31 +02:00
begin-on-same-line-as-then-else-do.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
begin-on-same-line-as-then-else-do.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
begin-on-same-line-as-then-else-do.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
block-keywords-start-new-line.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
block-keywords-start-new-line.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
block-keywords-start-new-line.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
caption-required-on-page-fields.bad.al Complete AL review knowledge readiness (#108) 2026-07-15 10:55:25 +02:00
caption-required-on-page-fields.good.al Complete AL review knowledge readiness (#108) 2026-07-15 10:55:25 +02:00
caption-required-on-page-fields.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
case-action-on-line-after-possibility.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
case-action-on-line-after-possibility.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
case-action-on-line-after-possibility.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
error-passes-parameters-directly-not-strsubstno.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
error-passes-parameters-directly-not-strsubstno.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
error-passes-parameters-directly-not-strsubstno.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
event-subscriber-param-names-match-publisher.md knowledge(style): event subscribers bind by parameter name, so a shorter list is not a mismatch (#138) 2026-08-28 11:07:05 +02:00
fieldcaption-not-fieldname-in-user-messages.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
fieldcaption-not-fieldname-in-user-messages.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
fieldcaption-not-fieldname-in-user-messages.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
file-name-object-type-pattern.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
function-call-parentheses-required.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
function-call-parentheses-required.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
function-call-parentheses-required.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
label-comment-explains-placeholders.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
label-comment-explains-placeholders.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
label-comment-explains-placeholders.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
label-locked-for-non-translatable.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
label-locked-for-non-translatable.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
label-locked-for-non-translatable.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
label-suffix-approved-list.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
label-suffix-approved-list.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
label-suffix-approved-list.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
labels-declared-at-object-scope.bad.al Improve PR-review parity: suggestion blocks, missing KB articles, privacy cross-ref 2026-05-27 15:45:49 +02:00
labels-declared-at-object-scope.good.al Improve PR-review parity: suggestion blocks, missing KB articles, privacy cross-ref 2026-05-27 15:45:49 +02:00
labels-declared-at-object-scope.md Improve PR-review parity: suggestion blocks, missing KB articles, privacy cross-ref 2026-05-27 15:45:49 +02:00
lowercase-reserved-keywords.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
lowercase-reserved-keywords.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
lowercase-reserved-keywords.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
named-invocations-not-object-ids.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
named-invocations-not-object-ids.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
named-invocations-not-object-ids.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-begin-end-around-single-statement.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-begin-end-around-single-statement.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-begin-end-around-single-statement.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-else-after-terminating-statement.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-else-after-terminating-statement.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-else-after-terminating-statement.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-space-before-method-parenthesis.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-space-before-method-parenthesis.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
no-space-before-method-parenthesis.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
object-name-30-char-limit.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
optioncaption-required-and-matches-membercount.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
optioncaption-required-and-matches-membercount.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
optioncaption-required-and-matches-membercount.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
page-name-must-match-source-table.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
single-space-after-not-operator.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
single-space-after-not-operator.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
single-space-after-not-operator.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
single-space-around-binary-operators.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
single-space-around-binary-operators.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
single-space-around-binary-operators.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
temporary-variable-temp-prefix.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
temporary-variable-temp-prefix.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
temporary-variable-temp-prefix.md Complete AL review knowledge readiness (#108) 2026-07-15 10:55:25 +02:00
this-keyword-in-codeunits.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
this-keyword-in-codeunits.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
this-keyword-in-codeunits.md Fix knowledge corpus integrity issues (#87) 2026-07-13 10:34:23 +02:00
tooltip-required-on-page-fields.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
tooltip-required-on-page-fields.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
tooltip-required-on-page-fields.md tooltip: PR review flags genuinely-missing tooltips instead of deferring to AA0218 2026-07-20 14:30:29 +02:00
variable-declaration-order-by-type.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
variable-declaration-order-by-type.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
variable-declaration-order-by-type.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
variable-name-must-not-shadow.bad.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
variable-name-must-not-shadow.good.al Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
variable-name-must-not-shadow.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00
xmldoc-for-public-library-procedures.md Regenerate microsoft/knowledge from upstream BCApps instructions 2026-05-21 09:53:09 +02:00