code change · featureAL Developmentofficial - Microsoftreviewed - checked by Opus

#98 Add P0 event and interface compatibility knowledge

Guidance added for event and interface compatibility patterns, covering enum unknown value handling, published interface evolution, subscriber contracts for local and internal events, and shipped event attribute immutability.

Pull request · merged into main on 2026-07-14 by JesperSchulz · 19 files (+331 -32), 19 AL · feature · tier official · reviewed (checked by Opus)

What changed

  • New samples and documentation for handling unknown enum ordinals using UnknownValueImplementation (BC18+)
  • Guidelines for extending published interfaces with versioned siblings and BC25+ extends syntax
  • Event parameter compatibility rules clarified: local/internal subscribers bind by name and can omit new parameters; public procedures cannot gain required parameters
  • Shipped event attribute flags must not be modified to maintain compatibility
  • Targeted review skill cues added for events and interfaces topics

AL objects touched

  • microsoft/knowledge/events/add-new-event-parameters-at-the-end.bad.al: modified, not in the BC? snapshot
  • microsoft/knowledge/events/add-new-event-parameters-at-the-end.good.al: modified, not in the BC? snapshot
  • microsoft/knowledge/events/add-new-event-parameters-at-the-end.md: modified, not in the BC? snapshot
  • microsoft/knowledge/events/do-not-change-shipped-event-attribute-flags.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/events/do-not-change-shipped-event-attribute-flags.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/events/do-not-change-shipped-event-attribute-flags.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/events/prefer-this-over-includesender-in-codeunit-events.md: modified, not in the BC? snapshot
  • microsoft/knowledge/events/treat-local-and-internal-events-as-subscriber-contracts.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/events/treat-local-and-internal-events-as-subscriber-contracts.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/events/treat-local-and-internal-events-as-subscriber-contracts.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/interfaces/extend-published-interfaces-dont-edit-them.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/interfaces/extend-published-interfaces-dont-edit-them.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/interfaces/extend-published-interfaces-dont-edit-them.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/interfaces/handle-unknown-enum-ordinals-with-unknownvalueimplementation.bad.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/interfaces/handle-unknown-enum-ordinals-with-unknownvalueimplementation.good.al: added, not in the BC? snapshot yet
  • microsoft/knowledge/interfaces/handle-unknown-enum-ordinals-with-unknownvalueimplementation.md: added, not in the BC? snapshot yet
  • microsoft/knowledge/interfaces/set-defaultimplementation-on-enum.md: modified, not in the BC? snapshot
  • microsoft/skills/review/al-events-review.md: modified, not in the BC? snapshot
  • microsoft/skills/review/al-interfaces-review.md: modified, not in the BC? snapshot

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