Extract NL customization to object extensions (TrMode) - #8933
Extract NL customization to object extensions (TrMode)#8933Alexander Yakunin (Alexander-Ya) wants to merge 53 commits into
Conversation
|
Fixes AB#640601 |
Copilot PR ReviewIteration 17 · Outcome: completed Knowledge source: https://github.com/microsoft/BCQuality@186d8a131465475c79244d994acb872cd5c0d4bf Findings by domainFindings split into Knowledge-backed (cite a BCQuality article) and Agent (the agent's own judgement, no matching BCQuality rule).
Totals: 3 knowledge-backed · 0 agent findings. Orchestrator pre-filter (2 file(s) excluded)
Findings produced by the AL review agent v1.7.3. Reply 👎 on any inline comment to flag false positives. |
The model-reported anchor for a single-line suggestion can be off by more than 8 lines (e.g. PR #8933 VendorNL Confirm() was off by 10, label rename off by 9). Widen the search window to 40 lines either side so the correct target within the same procedure is considered, while the 0.5 similarity floor and 0.1 ambiguity margin keep an unrelated look-alike from winning. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Widening the search window exposed a precision problem: a label-rename suggestion whose added Comment text echoes the field captions at the Error()/Confirm() call site would re-anchor onto the call site (PR #8933 GenJournalLineNL/GeneralLedgerSetupNL 'Text1000000/1' findings), which is worse than the original mis-anchor. Raise the similarity floor to 0.6 and use a bounded window (20). Genuine edit targets - an edited statement or a renamed declaration - score ~0.75-0.99 and re-anchor confidently (the PR #8933 Confirm() findings and the PartnerTypeMismatchMsg->Qst rename now land on the right line). Lower- confidence look-alikes stay below the floor and are suppressed, so the caller posts a manual snippet instead of a wrong auto-applicable anchor. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…Extract-NL-customization-to-object-extensions-v2
…Extract-NL-customization-to-object-extensions-v2
This comment was marked as resolved.
This comment was marked as resolved.
| @@ -10374,6 +10375,11 @@ table 36 "Sales Header" | |||
| begin | |||
| end; | |||
|
|
|||
| [IntegrationEvent(false, false)] | |||
| local procedure OnAfterValidateBillToCustomerPaymentFields(var SalesHeader: Record "Sales Header") | |||
There was a problem hiding this comment.
The new publisher OnAfterValidateBillToCustomerPaymentFields is raised inside the "Bill-to Customer No." validation flow, but its name omits the host trigger and reads like a boundary event for a standalone routine. Rename it to the existing OnValidateBillToCustomerNoOn... pattern so subscribers can see it fires mid-validation after the payment fields validate. This same name is copied into every touched SalesHeader.Table.al layer file.
Knowledge:
👍 useful · ❤️ especially valuable · 👎 wrong - reply with why · AL review agent v1.35.4
Good Sense Reviewer - Round 10Recommendation: Request ChangesWhat this PR doesThis PR continues moving NL Transaction Mode and related local behavior out of full objects and into object extensions. Since round 9, the new commits add role-center action images and tooltips, reorder one key to clear an analyzer warning, and remove a duplicate Those latest changes look mechanical and do not introduce a new code issue in the reviewed hunks. They also do not change the remaining Transaction Mode copy and validation paths, the disabled W1 service test, or the sales prepayment subscriber signature, so the main merge blockers remain open. Status of previous suggestions
New observations (commits since round 9)None - the commits since round 9 only adjust action metadata, key order, and a duplicate property. No new PR-owned issue was found after checking those hunks against the net PR diff. Risk assessment and necessityRisk: The new round-10 changes are low risk, but the open PR risk remains behavior leakage during a refactor that should preserve NL behavior. Unguarded subscribers can still write Transaction Mode values in companies where the field validations would exit, and the sales prepayment subscriber still does not match the publisher shape that supplies the needed sales header. Necessity: Moving NL-specific Transaction Mode behavior into object extensions is still the right direction for reducing full-object deltas. The PR is still not safe to merge until the open behavior, signature, and test-state gaps are resolved. ---> [AI-PR-REVIEW] version=1 promptVersion=4 system=github pr=8933 round=10 by=alexei-dobriansky at=2026-08-31T13:30:13Z lastSha=064fd842f9cda2623eb3bc57c0792ce121b1f066 reviewKey=5265ef4da63faee5c0b531b071cc6f549e36679cbab2ed944f28106334c6ab9e suggestions=S1@8ec636aa:addressed,S2@f3837858:addressed,S3@6881603a:notaddressed,S4@237a553a:notaddressed,S5@4116b6a1:notaddressed,S6@2520bcaa:notaddressed,S7@dfd0ab17:notaddressed,S8@98126d5b:notaddressed parentRound=9 |
…Extract-NL-customization-to-object-extensions-v2
Good Sense Reviewer - Round 11Recommendation: Request ChangesWhat this PR doesThis PR continues moving NL Transaction Mode and related local behavior out of full objects and into object extensions. Since round 10, the new commit only fixes analyzer warnings by reordering FlowField filters, adding a label comment, and wrapping Those latest changes look mechanical and do not introduce a new issue in the reviewed hunks. They also do not change the remaining Transaction Mode copy and validation paths, the disabled W1 service test, or the sales prepayment subscriber signature, so the main merge blockers remain open. Status of previous suggestions
New observations (commits since round 10)None - the commit since round 10 only addresses warning-shaped issues in FlowField filter order, label comments, and text-length conversion. No new PR-owned issue was found after checking those hunks against the net PR diff. Risk assessment and necessityRisk: The new round-11 changes are low risk, but the open PR risk remains behavior leakage during a refactor that should preserve NL behavior. Unguarded subscribers can still write Transaction Mode values in companies where the field validations would exit, and the sales prepayment subscriber still does not match the publisher shape that supplies the needed sales header. Necessity: Moving NL-specific Transaction Mode behavior into object extensions is still the right direction for reducing full-object deltas. The PR is still not safe to merge until the open behavior, signature, and test-state gaps are resolved.
|
| trigger OnValidate() | ||
| begin | ||
| if "Local Currency" = "Local Currency"::Euro then | ||
| Error( |
There was a problem hiding this comment.
This OnValidate check already knows the only valid recovery when "Local Currency" is Euro: clear "Currency Euro". Raising a plain Error leaves the user with a dead-end validation dialog; use an ErrorInfo with a Fix-it AddAction that clears the field, and include Title/Message/DetailedMessage so the recoverable failure offers the known remedy.
Knowledge:
👍 useful · ❤️ especially valuable · 👎 wrong - reply with why · AL review agent v1.35.4
Good Sense Reviewer - Round 12Recommendation: Request ChangesWhat this PR doesThis PR continues moving NL Transaction Mode and related local behavior out of full objects and into object extensions. Since round 11, the only new commit reindents the The latest change is mechanical and does not introduce a new issue in the reviewed hunk. It also does not touch the remaining Transaction Mode copy and validation paths, the disabled W1 service test, the role-center tooltip mismatch, or the sales prepayment subscriber signature, so the main blockers remain open. Status of previous suggestions
New observations (commits since round 11)None - the commit since round 11 only adjusts FlowField filter indentation in Risk assessment and necessityRisk: The new round-12 change is low risk, but the open PR risk remains behavior leakage during a refactor that should preserve NL behavior. Unguarded subscribers can still write Transaction Mode values in companies where the field validations would exit, and the sales prepayment subscriber still does not match the publisher shape that supplies the needed sales header. Necessity: Moving NL-specific Transaction Mode behavior into object extensions is still the right direction for reducing full-object deltas. The PR is still not safe to merge until the open behavior, signature, and test-state gaps are resolved.
|
…Extract-NL-customization-to-object-extensions-v2
Good Sense Reviewer - Round 13Recommendation: Request ChangesWhat this PR doesThis PR continues moving NL Transaction Mode behavior and related local objects out of full objects and into object extensions. Since round 12, the only author-owned commit adds The latest change is present in the net PR diff and is limited to analyzer-warning suppression around existing FlowField formulas. It does not add a new issue, but it also does not change the remaining Transaction Mode copy and validation paths, the disabled W1 service test, the role-center tooltip mismatch, or the sales prepayment subscriber signature. Status of previous suggestions
New observations (commits since round 12)None - the commit since round 12 only suppresses AA0232 around three Risk assessment and necessityRisk: The new round-13 change is low risk, but the open PR risk remains behavior leakage during a refactor that should preserve NL behavior. Unguarded subscribers can still write Transaction Mode values in companies where the field validations would exit, and the sales prepayment subscriber still does not match the publisher shape that supplies the needed sales header. Necessity: Moving NL-specific Transaction Mode behavior into object extensions is still the right direction for reducing full-object deltas. The PR is still not safe to merge until the open behavior, signature, and test-state gaps are resolved.
|
Good Sense Reviewer - Round 14Recommendation: Request ChangesWhat this PR doesThis PR continues moving NL Transaction Mode behavior and related local objects out of full objects and into object extensions. Since round 13, the only author-owned commit changes the The new key change is present in the net PR diff and matches the shape needed for open-entry lookups. It does not add a new issue, but it also does not change the remaining Transaction Mode copy and validation paths, the disabled W1 service test, the role-center tooltip mismatch, or the sales prepayment subscriber signature. Status of previous suggestions
New observations (commits since round 13)None - the commit since round 13 only adds Risk assessment and necessityRisk: The new key change is low risk and improves the moved Employee Ledger Entry extension. The open PR risk remains behavior leakage during a refactor that should preserve NL behavior: unguarded subscribers can still write Transaction Mode values in companies where the field validations would exit, and the sales prepayment subscriber still does not match the publisher shape that supplies the needed sales header. Necessity: Moving NL-specific Transaction Mode behavior into object extensions is still the right direction for reducing full-object deltas. The PR is still not safe to merge until the open behavior, signature, and test-state gaps are resolved.
|
What & why
Linked work
Fixes AB#640601
How I validated this
What I tested and the outcome (required — be specific: scenarios, commands, screenshots for UI changes)
Risk & compatibility