bcquality/microsoft/knowledge/finance/change-ledger-due-dates-through-entry-edit.md
Jesper Schulz-Wedde fa63d5526c Expand Finance pilot into a source-verified review domain
Move Finance knowledge to the Microsoft-owned layer, add nine scoped rules with eighteen AL samples, and register bounded Finance review with complete paired evaluation coverage.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-17 16:09:17 +02:00

2.7 KiB

bc-version domain keywords technologies countries application-area
all
finance
due-date
initial-entry-due-date
cust-entry-edit
vend-entry-edit
detailed-ledger-entry
aging
al
w1
finance

Change posted customer/vendor due dates through the entry-edit workflow

Description

A posted customer or vendor due date is supported editable operational data, but it is also represented by Initial Entry Due Date on related detailed ledger entries. Validating Due Date and calling Modify(true) on the main entry does not perform all synchronization done by "Cust. Entry-Edit" or "Vend. Entry-Edit". The main entry and due-date-based analysis can otherwise disagree.

Best Practice

Fetch the existing entry, validate the proposed Due Date, and pass the changed record to the corresponding entry-edit codeunit, as the standard ledger pages do. Field validation enforces entry-state rules; the editor persists the supported change and synchronizes related detailed entries. Preserve both steps rather than treating table triggers as equivalent to the edit workflow.

This is a due-date synchronization rule, not a prohibition on all operational edits after posting. Exclude temporary buffers, extension-only fields, supported editor internals, and code that demonstrably performs the equivalent synchronization under the supported workflow. Check the actual table/routine instead of assuming every *Entry-Edit accepts the same fields.

See sample: change-ledger-due-dates-through-entry-edit.good.al.

Anti Pattern

Change Due Date on an existing non-temporary Cust. Ledger Entry or Vendor Ledger Entry and persist it with Modify, Modify(true), or ModifyAll without the edit workflow or equivalent related-entry update. A preceding Validate("Due Date", ...) is not sufficient evidence of synchronization.

See sample: change-ledger-due-dates-through-entry-edit.bad.al.

References