mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-10-06 23:26:55 +01:00
Fix two merge-critical correctness issues from Jesper's 2026-09-22 review
- api-page-key-fields-must-be-editable-on-insert.good.al and stored-derived-fields-must-not-be-exposed-directly.good.al: both were writable API pages missing DelayedInsert = true, contradicting this repo's own api-page-delayedinsert-true rule - the canonical "good" samples were teaching code BCQuality itself flags. - dimension-management-wiring.good.al: UpdateDimensionSetID exited early when Customer.Get failed, leaving the previous customer's shortcut dimension and Dimension Set ID in place - the same staleness bug the InheritFromDimSetID = 0 fix (from the prior review round) was meant to prevent, just triggered by a failed lookup instead of a successful one. Now clears the shortcut field and recomputes with an empty source list on a failed lookup too, so GetDefaultDimID correctly returns an empty Dimension Set ID instead of never running.
This commit is contained in:
parent
b983a6da57
commit
43c9d5319c
4 changed files with 13 additions and 9 deletions
|
|
@ -71,15 +71,17 @@ table 50101 "Course Registration Header"
|
|||
DefaultDimSource: List of [Dictionary of [Integer, Code[20]]];
|
||||
GlobalDim2Code: Code[20];
|
||||
begin
|
||||
if not Customer.Get("Customer No.") then
|
||||
exit;
|
||||
|
||||
// Recompute from scratch (InheritFromDimSetID = 0): passing the existing
|
||||
// "Dimension Set ID" here would inherit dimensions from whichever record
|
||||
// the document was previously linked to, retaining them even after the
|
||||
// new customer's defaults have nothing for that dimension.
|
||||
// Recompute from scratch (InheritFromDimSetID = 0) whether or not the
|
||||
// customer lookup succeeds. Passing the existing "Dimension Set ID"
|
||||
// here would inherit dimensions from whichever record the document
|
||||
// was previously linked to, and exiting early on a failed Get would
|
||||
// leave that same stale data in place — both defeat the point of
|
||||
// this procedure. Clearing the shortcut field and recomputing with
|
||||
// an empty source list (when the customer doesn't exist) correctly
|
||||
// clears the document's dimensions instead of leaving old ones.
|
||||
"Shortcut Dimension 1 Code" := '';
|
||||
DimMgt.AddDimSource(DefaultDimSource, Database::Customer, "Customer No.");
|
||||
if Customer.Get("Customer No.") then
|
||||
DimMgt.AddDimSource(DefaultDimSource, Database::Customer, "Customer No.");
|
||||
"Dimension Set ID" :=
|
||||
DimMgt.GetDefaultDimID(
|
||||
DefaultDimSource, '', "Shortcut Dimension 1 Code", GlobalDim2Code, 0, 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue