Carried over from docs/KNOWLEDGE_AUDIT.md §7 items R3 and R5 — reusable material from the predecessor dynamics365ninja/d365fo-mcp-server, audited at v1.8.0. The audit docs are retired; this issue is their successor.
R3 — RDL / precision design (also finding G7). generate report now emits the full stack (TempDB table, DP, contract, SrsReportRunController, output menu item, AxReportAutoDesign with table data regions), all verified lossless against the live provider. RDL is deliberately not generated: it lives in AxReportPrecisionDesign.Text as an escaped document, and although precision designs outnumber auto designs in shipped code, a wrong RDL is far harder to detect than a wrong contract — the file loads and the report simply renders wrongly. The predecessor's generateSmartReport.ts (64 KB) does emit CDATA-embedded RDL 2016 with page-header injection and grouped-tablix/subtotals, and carries two regression-locked EDT-resolution bugs. Absorbing it needs its own evidence base first (a rendering oracle, not just a deserialization one).
R5 — form engine extras. Not ported:
formCloner.ts — clone a Microsoft reference form and re-bind data sources, string-level by design (XML round-trips corrupt AOT files).
fieldControlTypes.ts — derive the control type from the field's real i:type rather than EDT-name heuristics.
crossCheck.ts — mined-usage cross-check reporting catalog gaps after every index build.
Note that the structural half of R5 was absorbed and then some: scripts/emit-form-patterns.ps1 derives 162 pattern definitions from Microsoft.Dynamics.AX.Metadata.Patterns.dll, which is stronger than the predecessor's hand-maintained catalog.
Carried over from
docs/KNOWLEDGE_AUDIT.md§7 items R3 and R5 — reusable material from the predecessordynamics365ninja/d365fo-mcp-server, audited at v1.8.0. The audit docs are retired; this issue is their successor.R3 — RDL / precision design (also finding G7).
generate reportnow emits the full stack (TempDB table, DP, contract,SrsReportRunController, output menu item,AxReportAutoDesignwith table data regions), all verified lossless against the live provider. RDL is deliberately not generated: it lives inAxReportPrecisionDesign.Textas an escaped document, and although precision designs outnumber auto designs in shipped code, a wrong RDL is far harder to detect than a wrong contract — the file loads and the report simply renders wrongly. The predecessor'sgenerateSmartReport.ts(64 KB) does emit CDATA-embedded RDL 2016 with page-header injection and grouped-tablix/subtotals, and carries two regression-locked EDT-resolution bugs. Absorbing it needs its own evidence base first (a rendering oracle, not just a deserialization one).R5 — form engine extras. Not ported:
formCloner.ts— clone a Microsoft reference form and re-bind data sources, string-level by design (XML round-trips corrupt AOT files).fieldControlTypes.ts— derive the control type from the field's reali:typerather than EDT-name heuristics.crossCheck.ts— mined-usage cross-check reporting catalog gaps after every index build.Note that the structural half of R5 was absorbed and then some:
scripts/emit-form-patterns.ps1derives 162 pattern definitions fromMicrosoft.Dynamics.AX.Metadata.Patterns.dll, which is stronger than the predecessor's hand-maintained catalog.