mirror of
https://github.com/microsoft/BCQuality.git
synced 2026-08-06 09:26:52 +01:00
* Add 15 community knowledge articles from BC Code Intel ingest Ingests net-new /community knowledge from BC Code Intelligence, surviving the admission test, gray-zone salvage, and dedup against the full corpus. Domains: ui (6), error-handling (3), performance (2), upgrade (1), appsource (1), security (1), telemetry (1). The two BC24 No. Series migration drafts are merged into one article. Adds good/bad AL samples for the clean-fit articles (error-handling, performance, security, telemetry). UI and appsource remain knowledge-only. Validator and knowledge-index checks pass (207 articles). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Correct SetLoadFields JIT-load article to match MS docs The draft claimed accessing an unlisted field "reloads the entire row" per record. Microsoft's partial-records docs say otherwise: the platform does an implicit Get that loads the missing field(s), and in a direct var loop the first JIT updates the enumerator so later iterations do not re-load. The genuine per-row penalty is the pass-by-value case, where the copy's enumerator is not updated. Rewrite the article around JIT loading and the by-value footgun, rename the slug from ...full-reload to ...jit-load, and fix the good/bad samples to demonstrate the by-value repetition accurately. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Jeremy Vyska <jeremy@sparebrained.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
27 lines
872 B
AL
27 lines
872 B
AL
table 50122 "FieldError vs TestField Good"
|
|
{
|
|
fields
|
|
{
|
|
field(1; "No."; Code[20]) { }
|
|
field(2; "Posting Date"; Date) { }
|
|
field(3; "Amount"; Decimal) { }
|
|
}
|
|
|
|
procedure PostDocument()
|
|
begin
|
|
// Simple presence gate: TestField performs the check itself and raises
|
|
// only when the field is empty. Self-documenting prerequisite.
|
|
TestField("Posting Date");
|
|
|
|
// Business logic has already determined the value is invalid;
|
|
// FieldError raises a tailored, record-aware message with no
|
|
// condition of its own.
|
|
if IsAmountOutsideAllowedRange("Amount") then
|
|
FieldError("Amount", 'is outside the approved posting range');
|
|
end;
|
|
|
|
local procedure IsAmountOutsideAllowedRange(Value: Decimal): Boolean
|
|
begin
|
|
exit((Value < 0) or (Value > 1000000));
|
|
end;
|
|
}
|