mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-07 23:56:56 +01:00
Use a single exit(false) for the whole case false of chain
Review decision: all five conditions share one action, so they share one comma-separated value set with a single exit(false). Aligns the article's Best Practice with the sample — it previously told authors to keep side-effecting conditions in their own value set, which the sample no longer does — and drops the now-contradictory wording about listing the failure action per condition. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
f7a00bf0b6
commit
580970ac12
2 changed files with 6 additions and 14 deletions
|
|
@ -4,22 +4,14 @@ codeunit 50542 "Perf Sample CaseChain Good"
|
|||
var
|
||||
Item: Record Item;
|
||||
begin
|
||||
// 'case false of' matches the value sets in order and stops at the first
|
||||
// match, so each value set is reached only when the previous one passed —
|
||||
// and Item.Get is never called for a non-item line.
|
||||
// 'case false of' matches the values in order and stops at the first match,
|
||||
// so each condition is reached only when the previous one passed — and
|
||||
// Item.Get is never called for a non-item line.
|
||||
case false of
|
||||
// Pure field reads with no side effects and no order dependency, so
|
||||
// they share one value set and one action.
|
||||
(SalesLine.Type = SalesLine.Type::Item),
|
||||
(SalesLine."No." <> ''),
|
||||
(SalesLine."Qty. to Ship" > 0):
|
||||
exit(false);
|
||||
// These two keep their own value sets even though the action repeats:
|
||||
// ordering across separate value sets is what the documentation
|
||||
// guarantees. The Get must not run until the checks above pass, and
|
||||
// Blocked must not be read until the Get succeeded.
|
||||
Item.Get(SalesLine."No."):
|
||||
exit(false);
|
||||
(SalesLine."Qty. to Ship" > 0),
|
||||
Item.Get(SalesLine."No."),
|
||||
(not Item.Blocked):
|
||||
exit(false);
|
||||
end;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue