nav2009-development — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited nav2009-development (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Expert guidance for Microsoft Dynamics NAV 2009 (incl. SP1/R2): C/AL, C/SIDE, the 2-tier Classic client and the 3-tier RoleTailored Client (RTC). This skill is knowledge-only; detailed pattern tables live in REFERENCE.md — consult it before writing or reviewing non-trivial C/AL.
For performance problems (slowness, locking, deadlocks): the C/AL-side rules are below, but measure the SQL side with the nav2009-sql-performance skill — its script collects the DMV evidence and its REFERENCE maps SQL findings back to C/AL causes. Use both for a complete picture.
SETAUTOCALCFIELDS, no queries, no .NET interop in classic C/AL (DotNet variables arrive in 2009 R2 RTC service tier only). Customization = direct object modification in C/SIDE.
XMLports, RDLC report layouts). Code may run on the Classic client, the RTC service tier, or NAS — guard UI calls with GUIALLOWED and don't use client-side file dialogs in server-side code.
in place — every change must carry a version tag in the object's Version List and inline markers.
MaintainSQLIndex), SumIndexFields → **SIFT indexedviews** (MaintainSIFTIndex), FlowFields/CALCSUMS read them. NAV owns the physical schema; never recommend hand-made SQL indexes as the primary fix.
FINDSET (or FINDSET(TRUE) when modifying) for loops; FINDFIRST/FINDLASTfor one record; ISEMPTY for existence checks; never bare FIND('-') for new code.
CALCSUMS) — the single biggest C/ALperformance lever. Filtering on fields with no supporting key = scans on G/L Entry-sized tables.
COMMIT inside posting routines or loops — it breaks NAV's all-or-nothingposting (Codeunits 80/90/12...) and multiplies log writes. LOCKTABLE before read-then-update; acquire locks in a consistent order across code paths to avoid deadlocks.
CALCFIELDS only what you need, outside loops where possible; preferCALCSUMS on a SIFT-keyed field over summing in a loop.
get only minimal, tagged call-out lines ("hooks"). New modules get their own setup table and integrate with No. Series. Mark every standard-object touch: // <TAG> CUSTOMIZATION BEGIN ... // <TAG> CUSTOMIZATION END.
CustLedgEntry, GenJnlLine, SalesHeader) — matchthe base application's conventions, not your own.
Walk REFERENCE.md § Review checklist. Headlines: key/filter mismatch on large tables, FIND misuse, stray COMMIT, missing version tags, customization sprawl in standard objects, field IDs outside 50000–99999, locking order, RTC/Classic/NAS execution-target bugs (GUIALLOWED, file handling), and upgrade hostility (logic buried in standard objects instead of hooked-out codeunits).
dataset flat and minimal; GetData/SetData for document headers. Details + Classic-sections guidance in REFERENCE.
work; XMLports for file exchange; Dataports are Classic-only legacy; NAS + Job Queue for unattended processing; MSMQ/COM only when the counterpart demands it.
they translate to event subscribers later; avoid new Dataports/Forms where an XMLport/Page works; flag deep standard-table surgery as migration debt.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.