#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.
- 19files
- 19AL files
- 0objects
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? snapshotmicrosoft/knowledge/events/add-new-event-parameters-at-the-end.good.al: modified, not in the BC? snapshotmicrosoft/knowledge/events/add-new-event-parameters-at-the-end.md: modified, not in the BC? snapshotmicrosoft/knowledge/events/do-not-change-shipped-event-attribute-flags.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/events/do-not-change-shipped-event-attribute-flags.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/events/do-not-change-shipped-event-attribute-flags.md: added, not in the BC? snapshot yetmicrosoft/knowledge/events/prefer-this-over-includesender-in-codeunit-events.md: modified, not in the BC? snapshotmicrosoft/knowledge/events/treat-local-and-internal-events-as-subscriber-contracts.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/events/treat-local-and-internal-events-as-subscriber-contracts.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/events/treat-local-and-internal-events-as-subscriber-contracts.md: added, not in the BC? snapshot yetmicrosoft/knowledge/interfaces/extend-published-interfaces-dont-edit-them.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/interfaces/extend-published-interfaces-dont-edit-them.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/interfaces/extend-published-interfaces-dont-edit-them.md: added, not in the BC? snapshot yetmicrosoft/knowledge/interfaces/handle-unknown-enum-ordinals-with-unknownvalueimplementation.bad.al: added, not in the BC? snapshot yetmicrosoft/knowledge/interfaces/handle-unknown-enum-ordinals-with-unknownvalueimplementation.good.al: added, not in the BC? snapshot yetmicrosoft/knowledge/interfaces/handle-unknown-enum-ordinals-with-unknownvalueimplementation.md: added, not in the BC? snapshot yetmicrosoft/knowledge/interfaces/set-defaultimplementation-on-enum.md: modified, not in the BC? snapshotmicrosoft/skills/review/al-events-review.md: modified, not in the BC? snapshotmicrosoft/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).