Add source-verified Finance knowledge and review domain - #57
Jesper Schulz-Wedde (JesperSchulz) wants to merge 5 commits into
Conversation
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>
|
Jesper Schulz-Wedde (@JesperSchulz) - for the Do Not Modify posted entries, should we note in that file that non financial fields can be modified? For example, Customer Ledger Entries have a wide variety of "operational" fields that are editable these days. |
Addresses review feedback from @JeremyVyska on PR #57: the immutability rule applies to financial content, not the whole entry. Reframes the Description around financial content and gives the operational-field exception (payment/application data, on-hold, applies-to, communication fields edited via CustEntry-Edit/VendEntry-Edit and the ledger entry pages) its own paragraph in Best Practice instead of understating it as a narrow set. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Good call, thanks Jeremy. You're right that "narrow set" undersold it. I've reworked the file so the immutability rule is explicitly about financial content (amounts, accounts, posting date, quantities), and gave the operational fields their own paragraph in Best Practice -- due date, payment-discount dates, on-hold, applies-to ID, and recipient/communication fields, edited through |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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>
Remove application-area gating and later VAT-field dependencies, align dynamic shared conventions, separate SCM ownership, and keep journal examples focused on the intended invariant. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Summary
Replace the Community Finance pilot with a Microsoft-owned domain: nine atomic articles, eighteen original AL companions, and
al-finance-review. Current validated head:7c17aa3ab8391af88a5121fa5d4ca6eb88ef1cfe.Integration order: land #192 first, then refresh this branch from main and reconcile the shared skill-registration additions before merging #57. The independent fixes below are complete now; no unmerged SCM implementation was imported or rebased into this branch.
Knowledge inventory
All articles live in
microsoft/knowledge/finance/, with the established inlineSee sample:links to.bad.al/.good.alcompanions.post-ledger-entries-through-posting-codeunitsdo-not-modify-or-delete-posted-ledger-entrieswrite-dimensions-as-dimension-set-entriesdo-not-edit-shared-dimension-setsapply-ledger-entries-through-application-codeunitschange-ledger-due-dates-through-entry-editValidateplusModify(true).reverse-transactions-by-transaction-numberReverseTransactioninstead of the selected entry's Transaction No.preserve-journal-batch-document-balanceForce Doc. Balancepolicy with a line-posting loop.normal-vat-journal-amount-includes-vatThe two foundational posting/correction rules remain because their actionable bookkeeping invariants and precise supported-edit, compression, temporary-buffer, and extension-field exceptions add value beyond generic AL advice. They are not retained to meet an article count.
External-review corrections
application-area: [all]. READ otherwise makes missing area context conditional, allowing findings to be capped or dropped. Resolved records and operations now supply narrowing; the evaluation context deliberately omits area.$expectedLeaves.Count; documentation is number-free. No schema or shared functional-domain infrastructure change.Non-Deductible VAT %fields. The rule addresses the supplied gross transaction total, not a fixed deductible/non-deductible allocation. Executable input totals, Normal VAT/automatic mode, rate, currency, rounding, and unrealized-VAT prerequisites remain after neutralization.LineAmount; the negative loop passes a separateLineToPostbuffer byvar, preserving its iterator. The intended document-balance violation remains.Financedisplay domain. No new## Samplesconvention.Evidence and applicability
Behavior was checked against public BCApps W1 source at
8f7a04cb0db8aa96cb97e055c45c61aead49e280, whose manifest describes development version 30, and corroborating Microsoft Learn pages linked in the articles. Implementation bodies were not copied. Normal-VAT gross extraction was independently rechecked when addressing this feedback.The rules describe longstanding invariants (
bc-version: [all],countries: [w1]), not tax legislation. Actual sample API compilation was against BC 28.5, not every historical version or localization. An optional older-target attempt resolved the tool's shared BC28 symbols and is not counted as BC20 validation.Validation of the corrected tree
No extension was deployed and no live Business Central posting transactions were executed. Customer configurations, localized overlays, and historical API compatibility remain subject to normal maintainer/domain review. This PR has not been merged or self-approved.