Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,10 @@ codeunit 113 "Vend. Entry-Edit"
OnBeforeVendLedgEntryModify(VendLedgEntry, Rec);
VendLedgEntry.TestField("Entry No.", Rec."Entry No.");
VendLedgEntry.Modify();
OnRunOnAfterVendLedgEntryModify(Rec, VendLedgEntry);
#if not CLEAN29
OnRunOnAfterVendLedgEntryMofidy(VendLedgEntry);
#endif
Rec := VendLedgEntry;
end;

Expand Down Expand Up @@ -112,10 +115,23 @@ codeunit 113 "Vend. Entry-Edit"
begin
end;

#if not CLEAN29
[Obsolete('Replaced by event OnRunOnAfterVendLedgEntryModify()', '29.0')]
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryMofidy(var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;
#endif

/// <summary>
/// Raised after the vendor ledger entry has been modified.
/// </summary>
/// <param name="VendorLedgerEntryRec">The vendor ledger entry record passed to the codeunit.</param>
/// <param name="VendorLedgerEntry">The modified vendor ledger entry.</param>
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryModify(var VendorLedgerEntryRec: Record "Vendor Ledger Entry"; var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnAfterLogFieldChanged(CurrVendorLedgerEntry: Record "Vendor Ledger Entry"; NewVendorLedgerEntry: Record "Vendor Ledger Entry"; var Changed: Boolean)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,10 @@ codeunit 113 "Vend. Entry-Edit"
OnBeforeVendLedgEntryModify(VendLedgEntry, Rec);
VendLedgEntry.TestField("Entry No.", Rec."Entry No.");
VendLedgEntry.Modify();
OnRunOnAfterVendLedgEntryModify(Rec, VendLedgEntry);
#if not CLEAN29
OnRunOnAfterVendLedgEntryMofidy(VendLedgEntry);
#endif
Rec := VendLedgEntry;
end;

Expand Down Expand Up @@ -121,10 +124,23 @@ codeunit 113 "Vend. Entry-Edit"
begin
end;

#if not CLEAN29
[Obsolete('Replaced by event OnRunOnAfterVendLedgEntryModify()', '29.0')]
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryMofidy(var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;
#endif

/// <summary>
/// Raised after the vendor ledger entry has been modified.
/// </summary>
/// <param name="VendorLedgerEntryRec">The vendor ledger entry record passed to the codeunit.</param>
/// <param name="VendorLedgerEntry">The modified vendor ledger entry.</param>
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryModify(var VendorLedgerEntryRec: Record "Vendor Ledger Entry"; var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnAfterLogFieldChanged(CurrVendorLedgerEntry: Record "Vendor Ledger Entry"; NewVendorLedgerEntry: Record "Vendor Ledger Entry"; var Changed: Boolean)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,10 @@ codeunit 113 "Vend. Entry-Edit"
OnBeforeVendLedgEntryModify(VendLedgEntry, Rec);
VendLedgEntry.TestField("Entry No.", Rec."Entry No.");
VendLedgEntry.Modify();
OnRunOnAfterVendLedgEntryModify(Rec, VendLedgEntry);
#if not CLEAN29
OnRunOnAfterVendLedgEntryMofidy(VendLedgEntry);
#endif
Rec := VendLedgEntry;
end;

Expand Down Expand Up @@ -112,10 +115,23 @@ codeunit 113 "Vend. Entry-Edit"
begin
end;

#if not CLEAN29
[Obsolete('Replaced by event OnRunOnAfterVendLedgEntryModify()', '29.0')]
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryMofidy(var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;
#endif

/// <summary>
/// Raised after the vendor ledger entry has been modified.
/// </summary>
/// <param name="VendorLedgerEntryRec">The vendor ledger entry record passed to the codeunit.</param>
/// <param name="VendorLedgerEntry">The modified vendor ledger entry.</param>
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryModify(var VendorLedgerEntryRec: Record "Vendor Ledger Entry"; var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnAfterLogFieldChanged(CurrVendorLedgerEntry: Record "Vendor Ledger Entry"; NewVendorLedgerEntry: Record "Vendor Ledger Entry"; var Changed: Boolean)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,10 @@ codeunit 113 "Vend. Entry-Edit"
OnBeforeVendLedgEntryModify(VendLedgEntry, Rec);
VendLedgEntry.TestField("Entry No.", Rec."Entry No.");
VendLedgEntry.Modify();
OnRunOnAfterVendLedgEntryModify(Rec, VendLedgEntry);
#if not CLEAN29
OnRunOnAfterVendLedgEntryMofidy(VendLedgEntry);
#endif
Rec := VendLedgEntry;
end;

Expand Down Expand Up @@ -111,10 +114,23 @@ codeunit 113 "Vend. Entry-Edit"
begin
end;

#if not CLEAN29
[Obsolete('Replaced by event OnRunOnAfterVendLedgEntryModify()', '29.0')]
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryMofidy(var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;
#endif

/// <summary>
/// Raised after the vendor ledger entry has been modified.
/// </summary>
/// <param name="VendorLedgerEntryRec">The vendor ledger entry record passed to the codeunit.</param>
/// <param name="VendorLedgerEntry">The modified vendor ledger entry.</param>
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryModify(var VendorLedgerEntryRec: Record "Vendor Ledger Entry"; var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnAfterLogFieldChanged(CurrVendorLedgerEntry: Record "Vendor Ledger Entry"; NewVendorLedgerEntry: Record "Vendor Ledger Entry"; var Changed: Boolean)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,10 @@ codeunit 113 "Vend. Entry-Edit"
OnBeforeVendLedgEntryModify(VendLedgEntry, Rec);
VendLedgEntry.TestField("Entry No.", Rec."Entry No.");
VendLedgEntry.Modify();
OnRunOnAfterVendLedgEntryModify(Rec, VendLedgEntry);
#if not CLEAN29
OnRunOnAfterVendLedgEntryMofidy(VendLedgEntry);
#endif
Rec := VendLedgEntry;
end;

Expand Down Expand Up @@ -113,10 +116,23 @@ codeunit 113 "Vend. Entry-Edit"
begin
end;

#if not CLEAN29
[Obsolete('Replaced by event OnRunOnAfterVendLedgEntryModify()', '29.0')]
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryMofidy(var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;
#endif

/// <summary>
/// Raised after the vendor ledger entry has been modified.
/// </summary>
/// <param name="VendorLedgerEntryRec">The vendor ledger entry record passed to the codeunit.</param>
/// <param name="VendorLedgerEntry">The modified vendor ledger entry.</param>
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryModify(var VendorLedgerEntryRec: Record "Vendor Ledger Entry"; var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnAfterLogFieldChanged(CurrVendorLedgerEntry: Record "Vendor Ledger Entry"; NewVendorLedgerEntry: Record "Vendor Ledger Entry"; var Changed: Boolean)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,10 @@ codeunit 113 "Vend. Entry-Edit"
OnBeforeVendLedgEntryModify(VendLedgEntry, Rec);
VendLedgEntry.TestField("Entry No.", Rec."Entry No.");
VendLedgEntry.Modify();
OnRunOnAfterVendLedgEntryModify(Rec, VendLedgEntry);
#if not CLEAN29
OnRunOnAfterVendLedgEntryMofidy(VendLedgEntry);
#endif
Rec := VendLedgEntry;
end;

Expand Down Expand Up @@ -114,10 +117,23 @@ codeunit 113 "Vend. Entry-Edit"
begin
end;

#if not CLEAN29
[Obsolete('Replaced by event OnRunOnAfterVendLedgEntryModify()', '29.0')]
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryMofidy(var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;
#endif

/// <summary>
/// Raised after the vendor ledger entry has been modified.
/// </summary>
/// <param name="VendorLedgerEntryRec">The vendor ledger entry record passed to the codeunit.</param>
/// <param name="VendorLedgerEntry">The modified vendor ledger entry.</param>
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryModify(var VendorLedgerEntryRec: Record "Vendor Ledger Entry"; var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnAfterLogFieldChanged(CurrVendorLedgerEntry: Record "Vendor Ledger Entry"; NewVendorLedgerEntry: Record "Vendor Ledger Entry"; var Changed: Boolean)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,10 @@ codeunit 113 "Vend. Entry-Edit"
OnBeforeVendLedgEntryModify(VendLedgEntry, Rec);
VendLedgEntry.TestField("Entry No.", Rec."Entry No.");
VendLedgEntry.Modify();
OnRunOnAfterVendLedgEntryModify(Rec, VendLedgEntry);
#if not CLEAN29
OnRunOnAfterVendLedgEntryMofidy(VendLedgEntry);
#endif
Rec := VendLedgEntry;
end;

Expand Down Expand Up @@ -128,10 +131,23 @@ codeunit 113 "Vend. Entry-Edit"
begin
end;

#if not CLEAN29
[Obsolete('Replaced by event OnRunOnAfterVendLedgEntryModify()', '29.0')]
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryMofidy(var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;
#endif

/// <summary>
/// Raised after the vendor ledger entry has been modified.
/// </summary>
/// <param name="VendorLedgerEntryRec">The vendor ledger entry record passed to the codeunit.</param>
/// <param name="VendorLedgerEntry">The modified vendor ledger entry.</param>
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryModify(var VendorLedgerEntryRec: Record "Vendor Ledger Entry"; var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnAfterLogFieldChanged(CurrVendorLedgerEntry: Record "Vendor Ledger Entry"; NewVendorLedgerEntry: Record "Vendor Ledger Entry"; var Changed: Boolean)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,10 @@ codeunit 113 "Vend. Entry-Edit"
OnBeforeVendLedgEntryModify(VendLedgEntry, Rec);
VendLedgEntry.TestField("Entry No.", Rec."Entry No.");
VendLedgEntry.Modify();
OnRunOnAfterVendLedgEntryModify(Rec, VendLedgEntry);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$\textbf{🟡\ Medium\ Severity\ —\ Agent} \quad \color{gray}{\texttt{\small Iteration\ 1}}$

The new event OnRunOnAfterVendLedgEntryModify(var VendorLedgerEntryRec: Record "Vendor Ledger Entry"; var VendorLedgerEntry: Record "Vendor Ledger Entry") is fired as OnRunOnAfterVendLedgEntryModify(Rec, VendLedgEntry), but the very next executable statement in OnRun() is Rec := VendLedgEntry;, which unconditionally overwrites Rec.

Any subscriber that mutates the first (var) parameter to influence the caller's Rec will have that change silently discarded, because Rec is reassigned from VendLedgEntry immediately afterward. This is inconsistent with the codeunit's own established convention: the existing OnBeforeVendLedgEntryModify event in the same codeunit passes the equivalent 'from' record (FromVendLedgEntry) by value, not var, precisely because it is not meant to be mutated by subscribers. Declaring VendorLedgerEntryRec as var misleads integration writers into believing a change to it has effect, when in practice it never does for any subscriber of this event.

Recommendation:

  • either change VendorLedgerEntryRec to a by-value parameter (matching the OnBeforeVendLedgEntryModify convention and removing the false expectation of mutability), or, if mutability is genuinely intended, move the Rec := VendLedgEntry; assignment before firing this event so mutations to Rec are preserved (note this would also change existing behavior of the pre-existing Rec := VendLedgEntry ordering, so it should be verified against the obsolete event's established contract before changing).

👍 useful · ❤️ especially valuable · 👎 wrong - reply with why

#if not CLEAN29
OnRunOnAfterVendLedgEntryMofidy(VendLedgEntry);
#endif
Rec := VendLedgEntry;
end;

Expand Down Expand Up @@ -111,10 +114,23 @@ codeunit 113 "Vend. Entry-Edit"
begin
end;

#if not CLEAN29
[Obsolete('Replaced by event OnRunOnAfterVendLedgEntryModify()', '29.0')]
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryMofidy(var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;
#endif

/// <summary>
/// Raised after the vendor ledger entry has been modified.
/// </summary>
/// <param name="VendorLedgerEntryRec">The vendor ledger entry record passed to the codeunit.</param>
/// <param name="VendorLedgerEntry">The modified vendor ledger entry.</param>
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVendLedgEntryModify(var VendorLedgerEntryRec: Record "Vendor Ledger Entry"; var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;

[IntegrationEvent(false, false)]
local procedure OnAfterLogFieldChanged(CurrVendorLedgerEntry: Record "Vendor Ledger Entry"; NewVendorLedgerEntry: Record "Vendor Ledger Entry"; var Changed: Boolean)
Expand Down
Loading