| bc-version |
domain |
keywords |
technologies |
countries |
application-area |
|
|
events |
| event-parameters |
| signature |
| backward-compatibility |
| append |
| onbefore |
| integration-event |
| versioning |
|
|
|
|
Add new event parameters at the end
Description
Adding a parameter to an existing event publisher changes its signature. For a local or internal Business or Integration event, subscribers may omit parameters, so a new parameter can be compatible when appended at the end. A public event is also a public procedure that dependent extensions can raise; adding a parameter to it is breaking and requires a new event. Existing parameters must never be renamed, removed, reordered, or have their type changed.
Best Practice
When extending an existing local or internal Business or Integration event, append the new parameter after all existing ones, including after a trailing var IsHandled: Boolean when present. Existing subscribers can continue omitting the new trailing parameter. Create a new event instead when the publisher procedure is public.
See sample: add-new-event-parameters-at-the-end.good.al.
Anti Pattern
Inserting a new parameter before an existing parameter of a local or internal event, or adding any parameter to a public event. Detection: a changed event signature where a new parameter is not a compatible trailing addition.
See sample: add-new-event-parameters-at-the-end.bad.al.