bcquality/community/knowledge/finance/do-not-modify-or-delete-posted-ledger-entries.md
Jesper Schulz-Wedde 3cb00e4d2d Add Finance posting domain-knowledge pilot
Adds three atomic domain-rule knowledge files under community/knowledge/finance/ as a pilot for Type-A (normative) Business Central domain knowledge: post through the posting engine, treat posted ledger entries as immutable, and treat the Dimension Set ID as the source of truth for dimensions. Includes a good/bad AL sample pair for the posting rule.

These encode BC-specific invariants that LLMs reliably get wrong, fitting the existing remedial/atomic knowledge grain with no schema or contract changes. Passes the repo frontmatter validator and is discovered by the knowledge index.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-26 10:40:50 +02:00

1.9 KiB

bc-version domain keywords technologies countries application-area
all
finance
ledger-entry
immutable
reversal
audit-trail
correction
reverse
custentry-edit
al
w1
finance

Correct posted ledger entries by reversing, not by editing or deleting them

Description

A posted ledger entry is an immutable record in Business Central's audit trail. The financial content of G/L Entry, Cust. Ledger Entry, Vendor Ledger Entry, and similar tables — amounts, accounts, posting date, quantities — must not change after posting, because registers, applications, VAT statements, and statutory reports all assume entries are append-only. Corrections are themselves postings: BC provides reversal (the Reverse / Reverse Register routines) and correcting documents (credit memos, correcting journals) that post a new, offsetting entry and leave the original intact.

Best Practice

To undo or correct a posting, post a reversing or correcting entry through the normal posting path so the offset is itself a balanced, dated, traceable transaction. The original entry stays in place and the two net to zero, preserving the audit trail. A narrow set of non-financial fields (for example an entry's Open / On Hold status or a due date) is editable through dedicated platform routines such as CustEntry-Edit and VendEntry-Edit; use those routines rather than a raw Modify.

Anti Pattern

Calling Modify or Delete on a posted ledger entry to fix a mistake — changing an amount, repointing an account, or removing the row. Detection signal: Modify, ModifyAll, Delete, or DeleteAll on a *Ledger Entry or G/L Entry record outside a dedicated *Entry-Edit routine. This destroys the audit trail, desynchronizes the entry from its register and detailed entries, and corrupts any report or reconciliation that already consumed the original value.