[releases/28.x][Subscription Billing] Performance: Billing document creation does not scale to large datasets (4M+ subscription lines) - #9847
Conversation
…t scale to large datasets (4M+ subscription lines) Backport of microsoft#8553 to releases/28.x. The conflict in GenericConnectorProcessing.Codeunit.al was resolved deterministically: the PR's begin/ProgressTracker.Finish()/end wrapper was applied on top of the target branch's existing CreateUsageDataBillingFromTempServiceCommitments signature (the compact overload only exists on main via an unrelated refactor not present on releases/28.x). Backported-from: 08c1c85
|
Could not find linked issues in the pull request description. Please make sure the pull request description contains a line that contains 'Fixes #' followed by the issue number being fixed. Use that pattern for every issue you want to link. |
Pull request was closed
Pull request was closed
Agentic PR Review - Round 1Recommendation: Request ChangesWhat this PR doesThis backport brings the Subscription Billing scale fixes from PR #8553 to The scenario is valid and important: the linked bug and GitHub issue describe billing runs with about 4 million subscription lines, long runtimes, missing progress feedback, and full rollback after late failures. The code changes mostly match that root cause, and the release-branch conflict in usage-data billing keeps the SuggestionsS1 - Add functional regression tests Risk assessment and necessityRisk: The regression surface is high because the PR changes billing proposal creation, customer and vendor billing document creation, usage-data billing links, page refresh behavior, added keys, and transaction boundaries. Public table procedures on Necessity: The change is needed because the current flow does not scale to very large subscription-line datasets and can lose hours of work after a late failure. The scope is reasonable for the reported scale bug, but it needs regression tests before merge because incorrect billing amounts or usage links would be costly.
|
Pull request was closed
Backport of #8553 to
releases/28.xBackports #8553 — [Bug][SubscriptionBilling]: Performance: Billing document creation does not scale to large datasets (4M+ subscription lines) — to
releases/28.x.Routing analysis (deterministic, per file)
All 14 changed files were classified against real repo state (
git cat-file): every file already lives in the BCApps submodule (src/) on the target branch and none exists in NAVApp/. Verdict: BCApps only — a same-repo BCApps backport (nosrc/→App/remap, no NAV changes required).How it was applied
ad1c164..PR head) applied ontoreleases/28.xwithgit apply --3wayin an isolated worktree.GenericConnectorProcessing.Codeunit.alwas resolved deterministically by cross-referencing the conflict against the commit diff: the PR'sbegin / this.ProgressTracker.Finish() / end;wrapper was applied on top of the target branch's existingCreateUsageDataBillingFromTempServiceCommitmentscall. The compact single-argument overload seen in the incoming side only exists onmain(an unrelated refactor not present onreleases/28.x), so the target branch's long-parameter signature was preserved. Verified with the conflict-resolver's programmatic checker (PASS).Backported-from: PR #8553.
Fixes
AB#644742