bcquality/microsoft/knowledge/performance/reset-clears-partial-record-selection.md
Jesper Schulz-Wedde 4f0a13a801
Promote knowledge for Microsoft review skills (#153)
Move canonical knowledge for Microsoft-owned review domains into the Microsoft layer and document the skill/knowledge co-location policy.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Copilot-Session: 2a6ea875-d38e-4f30-aadb-0d606f9be231
2026-09-03 15:06:01 +02:00

1.3 KiB

bc-version domain keywords technologies countries application-area
all
performance
reset
setloadfields
partial-record
load-selection
findset
al
w1
all

Reset and empty SetLoadFields restore a full-row load

Contributions welcome — open a PR to refine or extend this article.

Description

SetLoadFields(...) sticks to the record variable until something clears it. Reset() "changes fields select for loading back to all", and SetLoadFields() with no arguments does the same. A later FindSet or Get then materializes every normal field. Agents often place SetLoadFields first, then Reset to apply new filters, and assume the partial selection survives. It does not.

Best Practice

Call Reset (or empty SetLoadFields()) first when the variable must be reused, then call SetLoadFields with the fields the next read actually uses, then apply filters and read. After Reset, a new SetLoadFields is required; the previous list is gone.

See sample: reset-clears-partial-record-selection.good.al.

Anti Pattern

SetLoadFields(...) followed by Reset() (or by parameterless SetLoadFields()) and then FindSet without restoring the load list. The filters look correct; the SQL still selects every column.

See sample: reset-clears-partial-record-selection.bad.al.